1

我有一個帶2個選項卡的iPhone應用程序。這是我的申請代表:如何將navigationController添加到現有的選項卡應用程序?

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
// Override point for customization after application launch. 
// Add the tab bar controller's current view as a subview of the window 
self.window.rootViewController = self.tabBarController; 
[self.window makeKeyAndVisible]; 
return YES; 
} 

我的第一個標籤是UITableViewController的子類。當有人點擊我的表的一行時,我想推一個新的視圖控制器。我知道,這是在didSelectRowAtIndexPath做過這樣的:

TableViewDetailViewController *fvController = [[TableViewDetailViewController alloc] initWithNibName:@"TableViewDetailViewController" bundle:[NSBundle mainBundle]]; 
    [self.navigationController pushViewController:fvController animated:YES]; 
    [fvController release]; 
    fvController = nil; 

self.navigationController是NIL所以沒有東西推到視圖堆棧。我應該在哪裏創建我的導航控制器,以便儘可能少地更改代碼?

回答

1

我們有直接的解決方案,使用接口生成器

Interface Builder中轉到已添加tabBarControllerxib並刪除與您已連接您的tableViewControllertabBarItem。現在

,拖放從庫中UINavigationControllertabBar並將此navigationControllerrootViewController爲您tableViewController

感謝

0

而不是設置你的TableViewDetailViewController爲您tabbbars ViewControllers之一,你應該在你的TabBar每個標籤建立UINavigationController。然後將您的TableViewDetailViewController放入相應的UINavigationController中。在這種情況下,self.navigationController將指向有效的UINavigationController

相關問題