视图控制器之间的导航问题

Posted

技术标签:

【中文标题】视图控制器之间的导航问题【英文标题】:navigation issue between viewcontrollers 【发布时间】:2014-02-11 12:05:43 【问题描述】:

推送视图控制器后,当我想将其弹出时,我的应用程序崩溃了。

NSArray *viewControllers = self.navigationController.viewControllers;
if (viewControllers.count>0) 
    [[self navigationController]  popViewControllerAnimated:YES];

我正在推动的控制器具有 uiwebview 和我正在做的要求 [twebView 停止加载];

我一无所知。任何人请给我一个很好的工作建议。 有没有什么简单的方法可以从右向左推送viewcontroller??

【问题讨论】:

到底是哪一行崩溃了?崩溃时的错误信息是什么? 推送的视图控制器通常通过调用[self.navigationcontroller popViewControllerAnimated:] 弹出,无需像您的代码那样的额外代码。我想其他地方有什么问题。让我显示一条崩溃消息。 @KyokookHwang 是的,它应该表现得如何。 n 我首先尝试了 [self.navigationcontroller popViewControllerAnimated:]不是每次崩溃,但如果我停止加载 webview,它不会弹出控制器。 我不确定以下链接是否有用。检查类似了。 ***.com/a/12651108/579236 【参考方案1】:

首先alloc您的阵列。参考以下代码:

NSArray *viewControllers = [[NSArray alloc]init];
viewControllers = self.navigationController.viewControllers;

NSLog(@"Controllers = %@",viewControllers);

if (viewControllers.count>0) 
    [[self navigationController]  popViewControllerAnimated:YES];

还可以检查控制器的日志,如上。

【讨论】:

【参考方案2】:
    for (UIViewController *controller in self.navigationController.viewControllers)
    
        if ([controller isKindOfClass:[OldViewController class]])
        
            //Do not forget to import AnOldViewController.h

            [self.navigationController popToViewController:controller animated:YES];
            break;
        
    

【讨论】:

以上是关于视图控制器之间的导航问题的主要内容,如果未能解决你的问题,请参考以下文章

视图控制器之间的导航不起作用

4 个视图控制器之间的简单自定义导航

在不同导航控制器中的视图之间切换

在视图控制器之间导航的按钮

在导航控制器中使用 Auto Layout 的主视图和滚动视图之间的差距

如何从“菜单”视图控制器在现有 UIViewControllers 之间导航?