J'ai une uialertController avec 4 options. Lorsque je choisis l'une de ces options, je souhaite envoyer le nom de cette option à la visionneuse suivante en tant que titre de cette vueController.
Voici mon code: p>
func showOptions(){
let actionSheet = UIAlertController(
title: "Select a type of inspection",
message: nil,
preferredStyle: .actionSheet
)
let cancel = UIAlertAction(
title: "Cancel",
style: .cancel,
handler: nil
)
let copyOfVehicleShortCheck = UIAlertAction(
title: "Copy of Vehicle Short Check",
style: .default
) { action in
self.performSegue(
withIdentifier: Constants.checklistInspectionIdentifier,
sender: self
)
}
let fullDailyDefect = UIAlertAction(
title: "Full Daily Defect and Damage Check",
style: .default
) { action in
self.performSegue(
withIdentifier: Constants.checklistInspectionIdentifier,
sender: self
)
}
let licenceCheck = UIAlertAction(
title: "Licence Check Y/N",
style: .default
) { action in
self.performSegue(
withIdentifier: Constants.checklistInspectionIdentifier,
sender: self
)
}
let vehicleShortCheck = UIAlertAction(
title: "Vehicle Short Check",
style: .default
) { action in
self.performSegue(
withIdentifier: Constants.checklistInspectionIdentifier,
sender: self
)
}
actionSheet.addAction(copyOfVehicleShortCheck)
actionSheet.addAction(fullDailyDefect)
actionSheet.addAction(licenceCheck)
actionSheet.addAction(vehicleShortCheck)
actionSheet.addAction(cancel)
self.present(actionSheet, animated: true, completion: nil)
}
3 Réponses :
Le rappel de l'AlertAction le renvoie
Comme @sh_khan mentionné, vous pouvez obtenir le titre d'action à l'intérieur du gestionnaire d'action.
Maintenant, vous devez enregistrer le titre sélectionné et le transmettre au contrôleur suivant, comme celui-ci:
sauvegarder le titre d'action: p> pass dans prepreforSue code> < / p>
Comme @sh_khan a signalé, pour obtenir le titre que vous avez besoin Ma réponse est un complément, depuis de votre question et de votre code, il n'est pas clair que vous savez comment Pour ce faire. p> Pour envoyer le titre d'une VC à une autre à une autre, vous devez remplacer la méthode PREPARYFORSEGUEGE. P> Créer une variable globale: P> action.title code>. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "insert your identifier here" {
if let vc = segue.destination as? YourDestinationViewController {
vc.title = selectedTitle
print("Title set in destination VC")
}
}
}
Merci beaucoup ! Je ne peux pas vous donner la réputation parce que je n'ai pas encore 15 pièces. Mais je reviendrai!