2012-08-09 58 views
1

我正在開發一個Iphone項目。在故事板中,我有myViewController,其中包含幾個UILabelUITableView。我想填充myTable的UIViewController裏面的UITableViewController

IBOutlet UITableView *myTable; 

現在我建立一個UITableViewController(myTableViewController): 所提UITableView在myViewController類由一個IBOutlet引用。 後來我回去myViewController,我在這裏myTableViewController分配中:

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

它不工作(EXC_BAD_ACCESS錯誤)。 通常我應該填充myTable通過UIViewController(確保它符合nedeed協議)。但我真的想知道如果我可以做我上面做的事情..

+1

您是否已將您的tableview連接到它的文件所有者,您還需要連接UITableview數據源和委託。 – iOSDev 2012-08-09 10:22:55

+0

你對文件所有者意味着什麼?我應該在哪裏連接UITableview數據源/委託? – luca 2012-08-09 11:07:56

+0

爲什麼你有一個IBOutlet for myTable? – iOSDev 2012-08-09 12:42:55

回答

0

大多數情況下,您可以通過使用IBOutlet創建UIViewController和對ViewController中的表的引用來解決此問題。但是,在某些情況下,您需要一個完整的UITableViewController,比如核心數據,並且您還希望能夠添加諸如UIToolbars之類的東西。我知道,很多時候你可以破解一個UINavigationController,但有時候你不需要層次結構/堆棧。在這種情況下,確實很少見,一種方法是創建一個UITableViewController子類。您可以在UIViewController類中導入並初始化它,從位於UIViewController的nib/scene內的tableView創建一個出口,然後將UITableViewController的tableView屬性分配給UIViewController的tableView出口。

self.instanceOfUITableVC.table = self.tableView 

這有點複雜,但它的工作原理。現在你可以使用UITableViewController子類實例來控制tableView。

相關問題