【问题标题】:ios8 unwind segue not working with UINavigationBarController and UITabBarController (Fixed in iOS 8.1)ios8 unwind segue 不适用于 UINavigationBarController 和 UITabBarController(在 iOS 8.1 中修复)
【发布时间】:2014-10-19 03:04:58
【问题描述】:

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

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

以下是我所看到的更具体的内容: [UITabBarContoller] -> [UINavigationController] -> [SomeViewController] -(Modal Segue)-> [此 ViewController 无法展开]

有趣的是,如果您执行另一个模态转场,您可以放松: [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 的自定义子类的工作继续有效。)

【问题讨论】:

  • 我在同一天用 Apple 记录了一个错误,说明它的价值。
  • 我发现了一个不完美的解决方法。我创建了一个 UINavigationController 的自定义类并向其中添加了 unwind 方法。它允许导航在 iPhone 6 模拟器上运行 Xcode 6 GM。
  • 查看我的临时解决方法stackoverflow.com/questions/25654941/…
  • 谢谢斯图尔特。我没有看到这个其他线程。
  • 将您的 xCode 更新到 6.1

标签: objective-c ios8 xcode6-beta6 unwind-segue


【解决方案1】:

通过创建自定义UITabBarController 并使用自定义UITabBarController 覆盖viewControllerForUnwindSegueAction

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-09
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多