视图之间的基本导航无效

时间:2012-06-17 14:57:21

标签: iphone objective-c ios navigation

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

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

在MyAppDelegate.m实现的didFinishLaunchWithOptions方法中,我正在创建一个UINavigationController并使用UIViewController实例作为Root View Controller进行初始化,其代码如下:

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

1 个答案:

答案 0 :(得分: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];