我有一个涉及UINavigationController的问题。如何重置UINavigationController?
我有一个应用程序有三个视图控制器,我使用导航控制器的推送和弹出功能进行切换。
问题是这样的: 我站在第三视图控制器和进行调用以
[self.navigationController popToRootViewControllerAnimated:YES];
这使我到第一个视图控制器(这正是我想要的),但是当我然后尝试导航到第二个视图控制器时,出于某种原因,我在第三个视图控制器中结束。
有没有什么办法可以重置导航控制器,或者我这样做的方式不对吗?
下面是我使用压入和弹出导航控制器的代码:
当用户决定启动相机下面的代码是所谓的根视图控制器。
if(self.cameraViewController == nil)
{
CollageCameraViewController *camView = [[CollageCameraViewController alloc] init];//WithNibName:nil bundle:[NSBundle mainBundle]];
self.cameraViewController = camView;
[camView release];
}
[self.navigationController pushViewController:self.cameraViewController animated:NO];
下面的代码是从CollageCameraViewController(二)呼吁用户已经采取了他的照片后:
if(self.renderView == nil)
{
CollageRenderViewController *renderViewController = [[CollageRenderViewController alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
self.renderView = renderViewController;
[renderViewController release];
}
[self.navigationController pushViewController:self.renderView animated:YES];
下面的代码是从CollageRenderViewController当用户决定回去叫到主要(根)视图:
[self.navigationController popToRootViewControllerAnimated:YES];
现在,如果我尝试再次推送CollageCameraViewController,我最终将在CollageRenderViewController中完成,为什么?
干杯, 安德烈亚斯
发布您的一些代码,以便我们可以看到您如何推送/弹出视图控制器以及您究竟在推送和弹出什么内容。 – Jasarien 2009-10-23 12:37:51