iphone - 如何重置 UINavigationController?

标签 iphone uinavigationcontroller

我遇到涉及 UINavigationController 的问题。

我有一个具有三个 View Controller 的应用程序,我使用导航 Controller 的推送和弹出功能在这三个 View Controller 之间进行切换。

问题是这样的: 我站在第三个 View Controller 中并调用电话
[self.navigationController popToRootViewControllerAnimated:YES];
这将我带到第一个 View Controller (这正是我想要的),但是当我尝试导航到第二个 View Controller 时,由于某种原因,我最终进入了第三个 View Controller 。

有什么方法可以重置导航 Controller ,还是我这样做的方法不对?

这是我用来推送和弹出导航 Controller 的代码:

当用户决定启动相机时,将在 Root View Controller 中调用以下代码。

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];

当用户决定返回主(根) View 时,将从 CollageRenderViewController 调用以下代码:

[self.navigationController popToRootViewControllerAnimated:YES];

现在,如果我尝试再次推送 CollageCameraViewController,我最终会进入 CollageRenderViewController,这是为什么?

干杯, 安德烈亚斯

最佳答案

在进入真正的主屏幕之前,我的堆栈中有多个 VC 作为设置屏幕。

我让我的工作像这样:

HomeViewController *hvc = [[HomeViewController alloc] init];
[self.navigationController pushViewController:hvc animated:YES];
self.navigationController.viewControllers = [[NSArray alloc] initWithObjects:hvc, nil];

我推送 HomeViewController,然后重写堆栈以仅包含主屏幕。

关于iphone - 如何重置 UINavigationController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1612747/

相关文章:

ios - 调用 applicationDidBecomeActive 时如何通知事件 View Controller ?

iphone - 没有 cocos2D 的 xcode iphone 粒子

ios - 使用自定义 "dismiss modal"类动画弹出 UIViewController

iphone - 确定 iPhone 上的 EDGE 连接断开后何时恢复

iphone - 我可以在iTunes Connect的哪个位置上传大图像图标?

ios - UIButton 隐藏但工作

iphone - UINavigationController 和 UITabBarController 中的选择性自动旋转

ios - 如何在 ios 中从 appdelegate 呈现不同的 View Controller

ios - 容器内的导航 Controller

iphone - 使用 Storyboard iOS 5 的 RSS Feed iPhone