迅速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之前应该已经提示你。