2013-11-27 3 views
0

.csv 파일에서 지역 업체의 세부 정보를 읽는 iPhone 응용 프로그램이 있습니다.Xcode 잘못된 개체가 UIViewController에 전달되었습니다.

  1. (잠을 잘 경우 예)
  2. 은 무엇

이 하나를 클릭에 따라 수행 할 작업 먹을

  • , 당신은 하위를 얻을 수면 : 3 메인 섹션이 있습니다

    1. B & B
    2. 호텔 : 같은 옵션 섹션 의
    3. 캐러밴하고, 예를 들어 선택하면 다음

    캠핑 호텔, 당신은 호텔 목록의 UITableView 표시됩니다. UITableView에는 3 성급 호텔과 4 성급 호텔을 구분할 수있는 2 개의 섹션이 있습니다. 아래의 화면 잡기를 참조하십시오. enter image description here

    이것은 지금까지 모두 괜찮 았지만 사업장의 세부 정보 페이지 (UIViewController)에 셀을 클릭하면 셀 정보가 잘못 표시됩니다.

    나는 내 UITableViewController의 didSelectRowAtIndexPath에서 코드 전체를 밟았으며 각 셀에 올바른 선택을 등록하고있는 것 같습니다.

    예를 들어, 위 이미지에서 Ballyroe Heights Hotel을 선택하면이 단계를 거치면 얻을 수있는 결과입니다. 여기서 dataArray()는 NSMutableArray가 3 Star이고 NSMutableArray가 4 Star Hotels 인 경우 아래에 추가됩니다.

    [dataArray addObject:threeStarArray]; 
    [dataArray addObject:fourStarArray]; 
    

    Output Image

    그러나, Ballyroe 하이츠 호텔 클릭하면 발리 가리 하우스 호텔 앤 스파

    에 갈 수 있습니다 무엇에 대한 단서는 쇼핑 섹션에 대한 세부 정보를 표시합니다. 다음은 쇼핑보기 및 섹션의 화면 캡처입니다. 매너 웨스트 소매 공원에

    enter image description here

    을 클릭하면 올바른 정보를 표시합니다. 그러나 Shaws Department Store를 클릭하면 Manor West Retail Park가 다시 나타납니다. 그런 다음 Thats Perfect를 클릭하면 Shaws Department Store가 표시되고 Sean Hussey를 클릭하면 Thats Perfect 세부 정보가 표시됩니다. 이것은 각 섹션에 대해 반복됩니다.

    하드웨어 (Kellihers ...)를 클릭하면 Manor West Retail Park에서 다시 표시됩니다.

    그러나 다시 한 번 살펴보면 didSelectRowAtIndexPath()에서 올바른 셀이 선택 된 것으로 보입니다.

    아래 예제에서 나는 Sean Hussey를 선택했고 올바른 셀이 선택되었고 segue sender : selectedCell이 Sean Hussey 객체임을 다시 보여줍니다.

    그러나 UIViewController에 전달 된 개체는 Thats Perfect입니다. 내가 잘못 가고있는 사람을 누구나 볼 수 있습니까?추가 코드를 제공 할 수 있지만이 방법은 행 선택을 확인하고 연속을 수행하므로 문제가 여기에 있어야합니다.

    enter image description here

  • +0

    무엇합니까처럼보기보기를 업데이트하는 코드? – esqew

    답변

    1

    당신은 데이터를 전송하는 잘못된 API를 사용하고 있습니다. 데이터는 performSegue하지 prepareForSegue를 사용하여 전달

     
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
        [self performSegueWithIdentifier:@"mySegueId" sender:self]; 
    }

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSLog(@"prepareForSegue: %@", segue.identifier ); NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

    if ([segue.identifier isEqualToString:@"mySegueId"] && indexPath) { NSArray *selectedRowArray = [dataArray objectAtIndex:indexpath.section]; BusinessDetailContent *selectedContent = [selectedRowArray objectAtIndex:indexpath.row]; BusinessDetailController *detailController = segue.destinationViewController; detailController.selectedcontent = selectedContent; }

    }

    관련 문제