【发布时间】:2011-10-06 17:33:54
【问题描述】:
我有一个带有 NavigationController 的项目,它在 IB 中包含要显示的第一个 ViewController。这只是创建项目时的默认模式。
在第一个 viewController 中,我收到了一些发送给 appDelegate 的事件,我希望它用另一个 rootview 替换该 rootview。下一个就不去了。
所以我这样做了:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
// Add the navigation controller's view to the window and display.
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
- (void) goNext {
[self.navigationController popViewControllerAnimated:NO];
NextViewController* nextWindow = [[[NextViewController alloc] initWithNibName:@"NextView" bundle:nil] autorelease];
[self.navigationController pushViewController:nextWindow animated:NO];
}
但这不起作用,第一个视图控制器没有弹出。 第二个逻辑上显示带有后退按钮。
我只想将第一个视图替换为另一个视图作为导航过程的开始。
【问题讨论】:
-
如果栈顶的视图控制器是根视图控制器,
popViewControllerAnimated:方法什么也不做。换句话说,您不能弹出堆栈中的最后一项。你可以试试setViewControllers:animated:方法。 -
你不能在 xib 中将你的 rootviewcontroller 更改为 NextViewController 吗?
标签: iphone uinavigationcontroller replace root