2012-08-09 2 views
1

저는 아이폰 프로젝트를 만들고 있습니다. 스토리 보드에서 나는 UILabelUITableView을 거의 가지고 있지 않은 myViewController을 가지고 있습니다. 은 UITableView가 함께 IBOutlet으로 myViewController 클래스에서 참조 언급 : UIViewController 내부의 UITableViewController

IBOutlet UITableView *myTable; 

지금 내가있는 UITableViewController (myTableViewController)를 구축 내가 myTable에 채울하려는. 그럼 내가 다시 myViewController에 가서 내가 여기 myTableViewController에 할당 : 그것은 (EXC_BAD_ACCESS 오류) 작동하지

MyTableViewController *myTableViewController = [[MyTableViewController alloc] init]; 
myTableViewController.tableView = myTable; 
myTableViewController.tableView.delegate = myTableViewController; 
myTableViewController.tableView.dataSource = myTableViewController; 

. 보통 myTable 물마루에 UIViewController를 채워야합니다 (nedeed 프로토콜을 준수하는지 확인). 그러나 내가 정말로 옳은 일을 할 수 있는지 궁금합니다.

+1

당신의 tableowner를 fileowner에 연결했는지, UITableview 데이터 소스와 델리게이트를 연결해야합니다. – iOSDev

+0

파일 소유자의 의미는 무엇입니까? 그리고 어디에서 UITableview 데이터 소스/대리인 연결해야합니까? – luca

+0

왜 MyTable 용 IBOutlet을 보유하고 있습니까? – iOSDev

답변

0

대부분의 경우 IBOutlet을 사용하여 UIViewController와 ViewController 내부의 테이블에 대한 참조를 생성하여이를 해결할 수 있습니다. 그러나 핵심 데이터와 같이 완전한 UITableViewController가 필요한 경우가 있으며 UIToolbars와 같은 항목을 추가 할 수도 있습니다. 나도 알다시피, 당신은 UINavigationController를 해킹 할 수 있지만 때로는 계층 구조/스택을 원하지 않는 경우가있다. 이러한 경우에는 매우 드물지만이 작업을 수행하는 한 가지 방법은 UITableViewController 하위 클래스를 만드는 것입니다. 가져 오기 및 UIViewController 클래스 초기화, UIViewController nib/scene 안에 앉아 tableView 콘센트를 만들고 UIViewController tableView 콘센트에 UITableViewController tableView 속성을 할당 할 수 있습니다.

self.instanceOfUITableVC.table = self.tableView 

다소 복잡하지만 작동합니다. 이제 UITableViewController 하위 클래스 인스턴스를 사용하여 tableView를 제어 할 수 있습니다.

관련 문제