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

前端之家收集整理的这篇文章主要介绍了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&C++相关文章