我有一个包含NavigationController的项目,其中IB中包含要显示的第一个ViewController。这只是创建项目时的默认模式。
在第一个viewController中,我接收到一些事件并将其发送给appDelegate,我希望它以另一个视图替换根视图,而不是转到下一个视图。
所以我做了:
- (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:
方法。 - albertamg