2012-06-17 22 views
0

我在视图之间的基本导航中遇到了一些麻烦。我有一个tabBarController与两个视图。在第一个视图控制器中,当响应按钮按下的方法被调用时,self.navigationController为null。调试器遍历代码,但模拟器中的屏幕不会更改。我在我的viewController按钮响应方法如下代码:视图之间的基本导航不起作用

FooViewController *fvc = [[FooViewController alloc] initWithNibName:@"FooViewController" bundle:nil]; 
[self.navigationController pushViewController:fvc animated=YES]; 

在我MyAppDelegate.m实施didFinishLaunchWithOptions方法我创建一个UINavigationController与一个UIViewController的实例作为根视图控制器与初始化它以下代码:

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController: viewController1]; 
self.tabBarController = [[UITabBarController alloc] init]; 
self.tabBarController.viewControllers = [NSArray arrayWithObjects: viewController1, viewController2, nil]; 
self.window.rootViewController = self.tabBarController; 

我当前的理解是,initWithRootViewController变量应该将UINavigationController对象绑定到viewController1。我究竟做错了什么?!? 任何想法,建议或珍贵的智慧将不胜感激。

非常感谢,

-Munk

回答

2

initWithRootViewController做这行绑定的导航,但随后在标签栏应设置UINavigationController而不是ViewController本身

变化

self.tabBarController.viewControllers = [NSArray arrayWithObjects: viewController1, viewController2, nil]; 

self.tabBarController.viewControllers = [NSArray arrayWithObjects: nav, viewController2, nil]; 

而且你似乎有一个错字这里

[self.navigationController pushViewController:fvc animated=YES]; 

改变它

[self.navigationController pushViewController:fvc animated:YES]; 
+0

真棒!这工作!谢谢奥马尔。 – munk