0

맹세코 내가 6 권의 자습서를보고 맹목적으로 무엇을하고 있는지 알 수는 없습니다. IBView를 통해 UIView 내에 중첩 된 tableview가 있고 테이블이 모두 형식화되어 올바르게 채워집니다. 세부 화면을 표시 할 수 없습니다. 표가 탭을 인식하고 행이 선택되었지만 행이 선택 상태를 유지합니다. 그렇다면 절대로 아무 일도 일어나지 않습니다. 동일한 결과를 가진 다른 행을 선택할 수 있지만 그 이후로는 아무 일도 일어나지 않습니다. 내가보기 및 밖으로 이동하고 전체 애플 리케이션 전체 기능을 가지고 있습니다. 테이블 뷰를 스크롤 할 수도 있지만 셀 세부 정보 화면에는 절대 들어갈 수 없습니다. IB에서 필요한 모든 부분을 함께 연결했습니다. "무기 호 번들"와 "번들 : [NSBundle mainBundle]"나는 모두를 시도했습니다표시 할 테이블 정보를 가져올 수 없습니다.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    //Get the selected cell detail 
    NSString *theString = [secondview objectAtIndex:indexPath.row]; 

    celldetails *dvController = [[celldetails alloc] initWithNibName:@"celldetails" bundle:nil]; 
    dvController.cellString = theString; 

    [self.navigationController pushViewController:dvController animated:YES]; 
} 

:

이는 상세 뷰에 대한 내 코드 없지만, 어느 쪽도 원하는 결과를 생성합니다. 누구든지 조언을 구할 수 있습니까? pushViewController:animated: 아무것도하지 않는 경우

+0

행을 선택할 때 콘솔 로그에 아무 것도 나타나지 않습니까? – jonkroll

+0

부수적으로, Objective-C 클래스 이름은 규칙에 따라 대문자 여야합니다. 그래서 세부보기 컨트롤러 클래스 "celldetails"의 이름을 CellDetails로 지정해야합니다. 실제로'CellDetailsViewController'는 더 명확 할 것이고 애플의 명명 규칙을 더 잘 따를 것이다. – jonkroll

+0

디버그 뷰의 콘솔 창에서 셀 행을 탭하면 Xcode 나 시뮬레이터의 출력이 표시되지 않습니다. 나타나는 유일한 것은 앱 폐쇄에 대한 확인 메시지입니다. – Jon

답변

0

, 당신의 navigationControllernil이 될 수 있지만, pushViewController:animated:에게 보낸 UIViewController 인스턴스 (뷰가 동일하고하지 않는 한 사용하지 않는 시각적 인 변화의 어떤 종류를 표시하기 때문에 그렇지 않으면 확실히 작동합니다 생기). didSelectRowAtIndexPath: 구현에 NSLog(@"blah"); 행을 추가하여 전화가 걸렸는 지 확인하십시오. 또는 그 방법에 중단 점을 붙이십시오.

nil 번들이 좋습니다. .xib을 찾지 못하면 그 결과에 대한 디버그 메시지가 표시되므로 .xib을 찾습니다. .xib을로드해도 view 콘센트가 설정되지 않은 경우 앱이 충돌하기 때문에 .xib에는 유효한 view 콘센트 세트가 있습니다.

+0

글쎄, 나는 일정한 배경보기, 툴바, 그리고 최고의 nav 영역 (아무 바도 있지만) 테마 애플 리케이션을 가지고; 그러나 테이블의 행을 탭할 때 테이블과 강조 표시된 셀 선택을 계속 볼 수 있기 때문에 새로운 XIB 뷰가 변경되는 것으로 확신하지는 않습니다. 뷰 변경이 발생했는지 확인하는 애니메이션이나 시각적 큐가 없습니다. – Jon

+0

UIViewController를 사용하고 UITableViewController를 사용하는 대신 IB를 통해 UITableView를 빌드하는 것과 관련이 있습니까? – Jon

+0

네, 그럴 수 있습니다. 귀하의'tableView' 제대로 'retaineded되지 않을 수 있습니다. '@property (assign)'을 사용하면 해제 될 수 있지만, 이미 그려진 컨트롤은 해제되거나 할당 해제 된 후에 붙어있을 수 있습니다. 할당 취소 된 버튼을 탭할 수 있다는 사실을 기억합니다. 델리게이트 메소드를 실제로 호출 할 수 없게 만들지는 모르겠지만, 적어도 그런 종류의 것을 확인해보십시오. 그것 이외에'delegate'와'dataSource'가 모두 설정되어 있는지 확인하기 위해서'table'을 한번 더 보자. 그리고 중단 점/로그 문도 수행하십시오. – darvids0n

관련 문제