func checkUser() {
let registered = UserDefaults.standard.bool(forKey: "registered")
let title = "Please Confirm"
var message:String?
var actions:[UIAlertAction]! = []
var rect:CGRect!
switch registered {
case true:
let firstName = UserDefaults.standard.string(forKey: "firstName") ?? ""
let lastName = UserDefaults.standard.string(forKey: "lastName") ?? ""
var fullName: String!
fullName = firstName
fullName.append(" \(lastName)")
let yesAction = UIAlertAction(title: "Yes", style:.destructive, handler: confirmHandler)
let noAction = UIAlertAction(title: "no", style: .destructive, handler: confirmHandler)
actions.append(yesAction)
actions.append(noAction)
rect = CGRect(x: self.view.bounds.midX - 100, y: self.view.bounds.midY + 100, width: 200, height: 200)
break
case false:
let yesAction = UIAlertAction(title: "Yes", style: .default, handler: setUpHandler)
let noAction = UIAlertAction(title: "no", style: .default, handler: setUpHandler)
actions.append(yesAction)
actions.append(noAction)
rect = CGRect(x: self.view.bounds.midX - 150, y: self.view.bounds.midY, width: 0, height: 0)
break
}
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
alert.popoverPresentationController?.sourceView = self.view
alert.popoverPresentationController?.sourceRect = self.view.bounds
for action in actions {
alert.addAction(action)
}
let popover = alert.popoverPresentationController
popover?.delegate = self
popover?.sourceView = view
DispatchQueue.main.async {
self.present(alert, animated: true, completion: nil)
}
}
func setUpHandler (alert: UIAlertAction) {
print ("received: \(String(describing: alert.title))")
switch alert.title {
case "Yes":
print("show set up")
case "No":
print("show set up")
default:
print("show set up")
}
}
Создайте только то, что НУЖНО внутри ящиков.Итак, установите некоторые переменные (то, что я называю настройкой работы), чтобы установить, что изменится в каждом конкретном случае.Затем, после ВСЕХ работ, выполненных после случаев, представьте предупреждение.
Что касается ваших вопросов - у вас должна быть каждая кнопка с разным обработчиком.Это 1) наиболее читаемый и 2) обеспечивает его там, где он не так связан.Позволяет для многократного использования.