Я использую код ниже в shouldPerformSegue. Я хочу остановить или продолжить segue, исходя из того, выбирает ли пользователь удаление или отмена.Cant return control from shouldPerformSegue при использовании UIAlertViewController в Swift
Я заметил, что segue останавливается из-за предупреждения. Если я удалю предупреждение, то segue работает нормально.
shouldPerformSegue
Неправильное место использование такой проверки?
Спасибо.
let alertController = UIAlertController(title: "Confirm Delete", message: "Are you sure?", preferredStyle: UIAlertControllerStyle.alert)
let deletelAction = UIAlertAction(title: "Delete", style: UIAlertActionStyle.destructive) { (result : UIAlertAction) -> Void in
print("Delete")
if self.selection != nil {
if self.selection!.delete() == true { //this is database call
self.success = true
} else {
self.success = false
}
}
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel) { (result : UIAlertAction) -> Void in
print("Cancelled delete")
self.success = false
}
alertController.addAction(deletelAction)
alertController.addAction(cancelAction)
self.present(alertController, animated: true, completion: nil)
return success
Вы устанавливаете 'success'' true/false' в пределах замыканий, поэтому вы должны использовать обратный вызов вместо метода 'return'. – Santosh
Сантош, я до сих пор не использовал обратные вызовы, поэтому сначала нужно узнать. Вы проверите. – ashishn