准备(用于 segue:UIStoryboardSegue,发件人:任何?)在 iOS 11 上的 Xcode 9 b6 中未调用

Posted

技术标签:

【中文标题】准备(用于 segue:UIStoryboardSegue,发件人:任何?)在 iOS 11 上的 Xcode 9 b6 中未调用【英文标题】:prepare(for segue: UIStoryboardSegue, sender: Any?) not called in Xcode 9 b6 on iOS 11 【发布时间】:2017-08-25 14:33:56 【问题描述】:

我刚刚下载了 XCode 9 Beta 6 并编译了我们的应用程序,没有任何问题,但不知何故,当通过 segue 以模态方式呈现视图控制器时,没有调用方法 prepare for segue 方法。

我没有进行任何更改,它仍然适用于 ios 10。有其他人也遇到过这种情况吗?

为了完整起见,这里有一些不再调用的代码:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
    if let viewController = segue.destination as? EventResponderSuccessViewController 
        viewController.event = event
     else if let viewController = segue.destination as? EventResponderPaymentVerifiedController 
        viewController.event = event
    

还有两个不叫segues的设置:

【问题讨论】:

仅供参考,使用 Xcode 9b6 和 iOS 11 使用 Xcode 9b6 和 iOS 11 进行“交叉溶解”的“呈现模态”效果很好(prepare(for:sender:) 被称为很好)。所以这让我怀疑呈现视图控制器的基类不是您认为的那样,或者呈现视图控制器的基类不是。也许用这种 segue 创建新的测试项目,并确认它是否在你当前的项目中。 【参考方案1】:

只是一个干净的构建最终为我解决了这个问题。

【讨论】:

以上是关于准备(用于 segue:UIStoryboardSegue,发件人:任何?)在 iOS 11 上的 Xcode 9 b6 中未调用的主要内容,如果未能解决你的问题,请参考以下文章

Swift: 是用Custom Segue还是用Transition动画

使用 UIStoryboards 时的最佳实践是啥?

UIStoryboards、UITableViewControllers 和 UIToolbars:无法将工具栏放置在我想要的位置

使用 unwind segues 推送数据

使用UIStoryboards时的最佳做法是什么?

Segue 为 segue 做准备的特定值