swift 3准备(for segue :)功能坏了吗?

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)

请注意,类型senderAny?不是AnyObject?.在升级Xcode之后你应该有一个错误,它告诉你你的方法没有覆盖它的超类中的任何方法,它应该在删除之前让你知道override.


归档时间:

查看次数:

30378 次

最近记录:

8 年,11 月 前