迅速3准备(for segue)function坏了?
出于某种奇怪的原因,用swift 3, prepare(for segue:
方法拒绝承认segue标识符,我把下面的IBAction连接到了UI上的一对button:
@IBAction func goToImagesPicker(_ sender: AnyObject) { performSegue(withIdentifier: "showImagePicker", sender: sender) } @IBAction func goToNamePicker(_ sender: AnyObject) { performSegue(withIdentifier: "showNamePicker", sender: sender) }
然而,在我的prepare(for segue:
方法,它不能识别不同的segue标识符,我知道,因为我的控制台不logging我分配给每个消息:
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") } }
有什么build议么? 或者这只是一个错误?
你的方法根本没有被调用,因为你有错误的签名。 它在Xcode 8 beta 6中被更改为:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
请注意sender
的types是Any?
而不是AnyObject?
。 升级Xcode后,你应该有一个错误,告诉你你的方法并没有覆盖超类中的任何方法,在你删除override
之前应该已经提示你。