pour une raison étrange, avec Swift 3, le prepare(for segue:
La méthode refuse de reconnaître l’identificateur de séquence. J'ai les IBAction suivants connectés à un couple de boutons sur l'interface utilisateur:
@IBAction func goToImagesPicker(_ sender: AnyObject) {
performSegue(withIdentifier: "showImagePicker", sender: sender)
}
@IBAction func goToNamePicker(_ sender: AnyObject) {
performSegue(withIdentifier: "showNamePicker", sender: sender)
}
Cependant dans mon prepare(for segue:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _::::::: Il est une console qui n'enregistre pas les messages que j'ai assignés à chacun d'eux
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")
}
}
aucune suggestion? ou est-ce juste un bug?
Votre méthode n'est pas appelée du tout parce que vous avez la mauvaise signature. Il a été changé dans Xcode 8 beta 6 en:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
Notez que le type de sender
est Any?
au lieu de AnyObject?
. Après la mise à niveau de Xcode, vous auriez dû avoir une erreur qui vous indiquait que votre méthode ne remplaçait aucune méthode de sa super-classe qui aurait dû vous indiquer avant de supprimer le override
.