我构建了一个演示应用程序,以显示如果您的应用程序使用带有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的自定义子类继续工作.)