2012-03-07 11 views
1

나는이 같은 인터페이스를 만들려고 하나에 2 테이블 뷰 및 기타 요소를 갖는아이폰 OS - TableViewController

enter image description hereenter image description here

을하지만 내가 엑스 코드에 다음과 같은 오류가 발생합니다 : Illegal Configuration: Static table views are only valid when embedded in UITableViewController instances

그 컨트롤러는 UITableViewController의 하위 클래스입니다. 그래서 문제가 무엇인지, 어떤 통찰력이 있는지 정말로 이해하지 못합니까?

+0

좋아요, 그렇다면 이런 종류의 레이아웃을 얻으려면 어떻게해야합니까? – 8vius

답변

8

우선 ProfileViewController가 UITableViewController의 하위 클래스라고 말한 것 같습니다. 이 경우 최상위 뷰는 UIView가 아닌 ​​UITableView 여야합니다. 그리고 그 오류는 의미가 있습니다. 정적 테이블 뷰를 생성하려면 팔레트에서 스토리 보드로 UITableViewController를 드래그 할 때 얻을 수있는 자체 UITableViewController에 임베드해야합니다.

개정 그래서 처음부터 시작 의견

의 질문에 대답합니다. TableViewController를 스토리 보드로 드래그하고 클래스를 ProfileViewController로 변경하십시오. 프로토 타입 셀을 사용하여 테이블 뷰를 제공합니다. 그런 다음 빈 뷰를 TableView의 위쪽에 드래그하십시오. 이것은 headerview를 tableView에 추가합니다. (모든 테이블 뷰에는 머리글과 바닥 글에 대한 하위보기가 있으며 이는 섹션 머리글과 다릅니다. 이제 헤더보기를 더 크게 만들고 다른 요소를 검색 필드로 드래그하십시오 : segmentedButton, 검색 필드. UIImage보기를 드래그하십시오. 다른 tableview를 끌어서 이미지보기 옆에 놓습니다.

이제 NSObject NOT NSTableViewController의 하위 클래스를 만듭니다.

@interface MiniTableViewController : NSObject <UITableViewDelegate, UITableViewDataSource>

그리고 거기에 그 minitableview에 대한 데이터 소스 및 위임 방법을 넣어. 스토리 보드로 돌아가 개체를 계층 구조로 드래그하여 클래스를 MiniTableViewController로 변경 한 다음 minitableview의 델리게이트 및 데이터 소스 아울렛을 계층 구조의 MiniTableViewController에 연결합니다. 보조보기를 사용하고 있는지 확인하십시오. 그런 다음 Ctrl 키를 누른 상태에서 MiniTableViewController 객체를 ProfileViewController.h (@end 바로 앞에)로 드래그하고 IBOutlet을 만듭니다. 이제 ProfileViewController에서 새 사용자 정의 객체에 액세스 할 수 있습니다. 또한 MiniTableViewController에 IBOutlet을 생성하고 ProfileViewController에 메시지를 보내려면 MiniTableViewController가 필요한 경우 ProfileViewController에 연결할 수 있습니다.

+0

어쨌든 이런 종류의 레이아웃을 얻을 수 있습니까? – 8vius

+0

수정 된 답변을 참조하십시오. – dbrajkovic

0

xib에 UITableView를 넣었습니까? 그렇다면이 UITableView를 컨트롤러에 바인딩합니까?

+0

이러한 모든 요소는 UIView를 통해 처리되므로 계층 구조 선택으로 업데이트하겠습니다. – 8vius

+0

그리고이 대답은 아마도 코멘트 일 것입니다 – 8vius

+0

클래스가 UITableViewController에서 상속 된 경우, 당신은 주요 그래픽 요소로 tableview를 사용해야합니다. 그래서 UITableViewController에서 UIViewController로 상위 클래스를 변경하는 것이 좋습니다. – Victor

2

UITableViewController는 하나의 테이블보기 만 가질 수 있습니다. 너는 두 명이야. 당신은 그것을 할 다른 방법을 찾아야한다.