我有一個涉及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