我刚刚开始使用 Xcode 6(beta 6)在 iOS8 上测试我的 iOS7 应用程序。我知道 iOS 8 已弃用“推送”和“模态”segue,但我很高兴发现我所有的 segue 都有效……除了一个。
我构建了一个演示应用程序,以表明如果您的应用程序使用带有 UINavigationController 的 UITabBarController,从模态转场展开似乎会被破坏。(我看到另一个 unwind segue 帖子,但它使用的是 swift,而我的演示应用程序使用的是 obj-c)。
这是我看到的更具体的内容: [UITabBarContoller] -> [UINavigationController] -> [SomeViewController] -(Modal Segue)-> [This ViewController Cannot Unwind]
有趣的是,如果你做另一个模态序列,你可以展开: [UITabBarContoller] -> [UINavigationController] -> [SomeViewController] -(Modal Segue1)-> [This ViewController Cannot Unwind] -(Modal Segue2)-> [This ViewController CAN unwind ]
我还发现,如果我删除 UITabBarController 或 UINavigationController,我可以放松,但我不打算更改我的整个应用程序 UI 架构:)
据我所见,根视图控制器从未收到对 canPerformUnwindSegueAction:fromViewController:withSender: 的调用,这在 iOS7 中是这样做的。
我的问题:我应该尝试以不同的方式让我的 unwind segue 发挥作用吗?
谢谢阅读。
演示代码在这里:https ://github.com/nmsasaki/UnwindDemo
更新
这个问题似乎已经被 iOS8.1 修复了。(iOS 8.0 创建 UINavigationController 的自定义子类的工作继续有效。)