由于某些奇怪的原因,对于 swift 3,prepare(for segue:
方法拒绝确认 segue 标识符。我将以下 IBAction 连接到 UI 上的几个按钮:
@IBAction func goToImagesPicker(_ sender: AnyObject) {
performSegue(withIdentifier: "showImagePicker", sender: sender)
}
@IBAction func goToNamePicker(_ sender: AnyObject) {
performSegue(withIdentifier: "showNamePicker", sender: sender)
}
然而在我的prepare(for segue:
方法,它无法识别不同的 segue 标识符,我知道这一点是因为我的控制台不会记录我分配给每个标识符的消息:
func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showImagePicker" {
print("This is the Image Picker")
}
if segue.identifier == "showNamePicker" {
print("This is the Name Picker")
}
}
有什么建议么?或者这只是一个错误?
您的方法根本没有被调用,因为您的签名错误。它在 Xcode 8 beta 6 中更改为:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
请注意,类型sender
is Any?
代替AnyObject?
。升级 Xcode 后你应该会遇到一个错误,它告诉你你的方法没有覆盖其超类中的任何方法,这应该在你删除之前就已经提示你了override
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)