我有一个警报框,它会返回一些我遇到麻烦的警告,并予以清除。
let alert = UIAlertController(title: "Delete the group?", message: "The group is removed permanently", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Cancel", style: .default, handler: { [weak alert] (_) in
self.dismiss(animated: true, completion: nil)
}))
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { [weak alert] (_) in
// Perform the serverside action here and dismiss
}))
self.present(alert, animated: true, completion: nil)
两个addAction-lines均返回“变量'alert'已写入但从未读取”的警告。我不明白,因为我在同一范围的“现在”行中使用了它。
有什么想法吗?
答案 0 :(得分:0)
我将所有警报都放在一个单独的班级中
class AlertViewController {
func someAlert(with title: String?, message: String?, viewController: UIViewController) {
let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
let someAction = UIAlertAction(title: "Action Title", style: .default) { (_) in
//Perform your action here
}
alertController.addAction(someAction)
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
alertController.addAction(cancelAction)
viewController.present(alertController, animated: true, completion: nil)
}
}
如果您使用style: .cancel
,它将自动关闭警报。此外,作为更好的用户体验,包括此.cancel
的用户将可以点击视图上的任意位置以消除警报。
您可以在需要时调用此操作;
AlertViewController.someAlert(with: "Title", message: "Message", viewController: self)
自我是您希望呈现的UIViewController
。