iOS 7 中的故事板导航问题

Posted

技术标签:

【中文标题】iOS 7 中的故事板导航问题【英文标题】:Navigation issue with storyboard in iOS 7 【发布时间】:2015-12-29 03:28:06 【问题描述】:

当我尝试在导航控制器的后退按钮单击上按下 segue 时,它​​会显示扭曲的视图。

它适用于 iOS 8

显示日志 nested push animation can result in corrupted navigation bar &Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted

我的代码如下:

    -(void) viewWillDisappear:(BOOL)animated 

        if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) 
            [self performSegueWithIdentifier:@"PaymentToMyads" sender:nil]; 
 //push a new view on back button
        
        [super viewWillDisappear:animated];
    

【问题讨论】:

我能问你代码的目的是什么吗?为什么要在控制器消失时执行 segue? @LiborZapletal,它将推送到故事板文件中的新视图。 为什么要在用户期待返回时推送新视图? 您的条件也将始终为真,因为当调用此方法时,视图控制器must 位于该数组中。 @Losiowaty,我的控制器可能不在数组中 【参考方案1】:

至于您的主要问题 - viewWillDisappear: 为时已晚,无法切换到另一个视图控制器,因为这基本上告诉您此转换已经开始。如果你想决定去哪个控制器,你必须“更早”做,例如在按钮处理程序中。

此外,正如 cmets 中所述,将用户重定向到返回按钮上的不同视图控制器而不是他们来自的视图控制器将被视为反向做法。

如果您要推送的“新视图”本质上是您的用户来自的那个,则无需手动执行。系统会帮你搞定。

【讨论】:

如果我尝试 poptoRootview 那么它也会产生问题,为什么? @Losiowaty 只是说你不能从 viewWillDisappear 导航你必须从按钮处理程序操作导航。

以上是关于iOS 7 中的故事板导航问题的主要内容,如果未能解决你的问题,请参考以下文章

ios7 - 故事板 - 无法在我的视图控制器中设置导航栏

故事板应用程序中的导航按钮丢失

主/详细故事板项目中的 IOS 导航栏在 ipad 上是透明的,但在 iphone 上不透明

iOS基础 02 StoryBoard 故事板文件

swift3中的导航问题,带有没有故事板的.xib文件

iOS 通过故事板将 UIView 锁定在导航栏下方和 UITableView 上方