Joh*_*and 23 ios segue swift swift3
由于某些奇怪的原因,使用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)
}
Run Code Online (Sandbox Code Playgroud)
但是在我的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")
}
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?或者这只是一个错误?
dan*_*dan 57
您的方法根本没有被调用,因为您的签名错误.它在Xcode 8 beta 6中更改为:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
Run Code Online (Sandbox Code Playgroud)
请注意,类型sender
是Any?
不是AnyObject?
.在升级Xcode之后你应该有一个错误,它告诉你你的方法没有覆盖它的超类中的任何方法,它应该在删除之前让你知道override
.
归档时间: |
|
查看次数: |
30378 次 |
最近记录: |