objective-c – ios8 unwind segue无法使用UINavigationBarController和UITabBarController(在iOS 8.1中已修复)

我刚开始使用 Xcode 6(beta 6)在iOS8上测试我的iOS7应用程序.我知道iOS 8已经弃用了“推”和“模态”segue,但我很高兴地发现我所有的segue都工作了……除了一个.

我构建了一个演示应用程序,以显示如果您的应用程序使用带有UINavigationController的UITabBarController,则从模态segue展开似乎会被破坏. (我看到了另一个放松的segue帖子,但是它使用的是swift,我的演示应用程序使用的是obj-c).

以下是我更具体的看法:
[UITabBarContoller] – > [UINavigationController] – > [SomeViewController] – (Modal Segue) – > [此ViewController无法解除]

有趣的是,如果你做另一个模态segue,你可以放松:
[UITabBarContoller] – > [UINavigationController] – > [SomeViewController] – (Modal Segue1) – > [此ViewController无法解除] – (Modal Segue2) – > [此ViewController可以解除]

我还发现如果我删除UITabBarController或UINavigationController我可以放松,但我不打算改变我的整个应用程序UI架构:)

从我所看到的,根视图控制器永远不会收到对canPerformUnwindSegueAction的调用:fromViewController:withSender:它在iOS7中执行.

我的问题:我是否应该采用不同的方式让我放松工作?

谢谢阅读.

演示代码在这里https://github.com/nmsasaki/UnwindDemo

UPDATE

这个问题似乎已经被iOS8.1修复了. (iOS 8.0解决方法是创建UINavigationController的自定义子类继续工作.)

解决方法

通过创建自定义UITabBarController并使用自定义UITabBarController来覆盖UITabBarController中的viewControllerForUnwindSegueAction.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...