2011-10-20 2 views
0

UITableViewController에서 detailViewController (UIViewController)를 푸시합니다. detailViewController는 UITextView와 작은 UITableView로 구성됩니다. 내 detailViewController UITableViewDataSource 및 UITableViewDelegate 프로토콜을 구현하는 UIViewController 수 설정했습니다 .I 대리인 및 데이터 소스 콘센트 IB 있습니다. detailViewController가 맨 위에 푸시 될 때 호출되는 필수 테이블 위임 및 데이터 소스 메소드가 있습니다. 섹션 (2)의 섹션 수 (1)와 행 수를 설정하는 메소드가 호출됩니다. 문제는 detailViewController가 위에있을 때 화면에 tableView가 표시되지 않는다는 것입니다. [: 스타일 슈퍼 initWithStyle] :UIViewController 안에 UITableView를 표시하는 방법은 무엇입니까?

- (id)initWithStyle:(UITableViewStyle)style{ 
    self = [super initWithStyle:style]; 
    if (self) { 
    // Custom initialization 
    } 
    return self; 
} 

나는 그것을 UIViewController에 속하지 않는 것을 있지만 상황이 흥분하는 방법을 이해

내가 엑스 코드가이 응답하지 않을 수 detailViewController에 initWithStyle에 대해 나에게 경고 것으로 나타났습니다 아웃?

업데이트 : 내 tableView 축소되었습니다 나타납니다. 충분히 높이와 너비를 IB에 설정했는데 tableView가 매우 좁은 한 행으로 화면에 나타나고 테이블이 행으로 채워질 때 크기가 조정되지 않는 것처럼 보입니다. IMHO 어떻게 든 initWithStyle을 호출 할 수 없다는 것과 관련이있다. 다른 방법으로 비슷한 솔루션을 얻은 사람이 있습니까?

답변

0

앞서 말했듯이 detailViewControllerUIViewController 하위 클래스입니다. UIViewController-initWithStyle:을 구현하지 않으므로 경고가 합법적입니다.

detailViewControllerUITableViewController에서 서브 클래 싱 할 수 없습니까?

UIViewController을 사용해야하는 경우 에 tableView 콘센트를 만들어야하며 IB에 테이블과 연결되어야합니다. 완료되었는지 확인 했습니까?

+0

Nop, 할 수 없습니다. navigationController 스택에 detailViewController를 푸시해야합니다. UIViewController 만 밀어 넣을 수 있습니다. – Centurion

+0

'UITableViewController'는 UIViewController'의 서브 클래스이므로 문제없이 탐색 컨트롤러에 푸시 할 수 있습니다. – ayoy

+0

그렇게하면 SIGARBT 오류가 발생합니다. – Centurion

관련 문제