【问题标题】:prepare for Segue is not being called准备 Segue 没有被调用
【发布时间】:2017-07-25 01:25:45
【问题描述】:

我已经阅读了十几篇关于 SO 的帖子。他们中的一些人建议使用 Override,但我得到一个编译错误,因为该函数定义现在是 open

self.user = user
performSegueWithIdentifier("selectPayment", sender: nil)

func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let vc = segue.destinationViewController as! SelectPaymentViewController
    vc.user = user
}

该底部函数永远不会被调用。为什么是这样?针对 iOS 9.2

【问题讨论】:

  • 哪个函数没有被调用
  • 尝试将发件人从 nil 更改为 self 并确保 selectPayment 是您在情节提要中分配给 segue 的正确名称。
  • 底部函数,我帖子中唯一的func 定义。在 UIViewController.h 中记录为 @available(iOS 5.0, *) open func prepare(for segue: UIStoryboardSegue, sender: Any?)
  • @apineda 不起作用。
  • 您在哪里编写了此代码,在视图控制器或您所说的任何其他类中......不允许覆盖,意味着您的代码不在视图控制器内......请分享完整的课程这里

标签: ios uiviewcontroller segue uistoryboardsegue


【解决方案1】:

这只是调用语法的问题。

正确的实现是

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

【讨论】:

  • 你用的是什么swift3以下的
  • 是的,这就是问题所在。我需要升级项目的 Swift 语法。谢谢!
  • 但是你的问题是用 swift 3 写的而不是下面,这就是我在 swift3 中添加答案的原因
  • 我之前确实收到了 Xcode 的提示,但忽略了继续使用功能。
猜你喜欢
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
  • 2012-02-07
  • 2022-08-18
  • 1970-01-01
  • 2015-10-21
  • 1970-01-01
  • 2012-12-28
相关资源
最近更新 更多