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

相关问题