在PrimaryViewController.h我有連接到我在的.xib文件添加表的IBOutlet
使用pushViewController在不同的表委託
IBOutlet UITableView *table;
在PrimaryViewController.m
我從TableDataController類構造一個新的tableController並附加到表
tableController = [[TableDataController alloc] initWithStyle:UITableViewStylePlain];
//Attach the table controller as datasource and delegate to the table
[table setDelegate:tableController];
[table setDataSource:tableController];
現在表中的所有數據都來自tableController。由於PrimaryViewController是被推送到navigationController而不是TableDataController類的堆棧的類;使用:
[self.navigationController pushViewController:newViewController];
在tableController結果毫無作爲tableController沒有navigationController。它是PrimaryViewController誰可以使用navigationController。
我想要做的就是使用TableDataController中的函數didSelectRowAtIndexPath:
將新的視圖控制器推送到PrimaryViewController的堆棧上。
請注意:我不能#import "ParimaryViewController.h"
到我TableDataController.h所以我可以把它(PrimaryViewController)對象 - 那麼他們將跨進口對方,產生語義錯誤。
PrimaryViewController是一個普通的類,用一個.xib擴展UIViewController類沒什麼特別的。 TableDataController是一個普通的類,它擴展了UITableViewController類,其中沒有 .xib文件。
謝謝喬希, 我剛剛嘗試這樣做,我仍然有一些問題。沒有其他方法可以做我想做的事 即使用不同類的pushViewController嗎?這一定是我想到之前完成的事情。 – hishamaus 2012-03-04 22:15:01
如果在你的問題中沒有更多的信息,這很難說。究竟是什麼問題?我看到的主要問題是:你的'TableDataController'如何首先獲得對視圖控制器的引用?它在哪裏創建?在xib中,還是在代碼中?你可以編輯你的問題,在這裏包含更多關於結構的信息嗎? – 2012-03-04 22:18:41
我剛編輯過這個問題。感謝您的幫助 – hishamaus 2012-03-05 00:55:31