【问题标题】:Navigation issue with storyboard in iOS 7iOS 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,我的控制器可能不在数组中

标签: ios iphone xcode uinavigationcontroller navigation


【解决方案1】:

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

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

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

【讨论】:

  • 如果我尝试 poptoRootview 那么它也会产生问题,为什么?
  • @Losiowaty 只是说你不能从 viewWillDisappear 导航你必须从按钮处理程序操作导航。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-05
  • 2015-12-10
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 2013-03-13
  • 2016-12-06
相关资源
最近更新 更多