我目前正在尝试创建一个简化UIAlert定义过程的类。
正如初始化警报的传统方式是
let alert = UIAlertController(title:"hello world", message: "how are you",preferedStyle: .actionSheet)
let ok = UIAlertAction(title:"ok",style:.default,handler: {(action) -> Void in print("ok")})
alert.addAction(ok)
self.presentViewController(alert,animated:true,completion:nil)
然而,由于我将通过我的应用程序在很多地方使用相同格式的警报,我正在考虑创建一个包含我的整个警报对象的类,其中添加了所有操作,因此我可以这样做:
let alert = MyAlert()
self.presentViewController(alert,animated:true,completion:nil)
我有
class myAlert: UIAlertController{
init() {
super.init(title:"hello world", message: "how are you", preferredStyle: .actionSheet)
}
}
但我似乎得到一个错误“必须调用超类'UIAlertController'的指定initliazer' 你能告诉我我做错了什么,并把我送到了正确的方向。我是一个相当新的快速,所以任何帮助都非常感谢。谢谢
答案 0 :(得分:1)
您可以创建extension
,只要您想显示UIAlertController
,只需调用该方法即可。使用扩展程序,它可以在整个应用程序中使用。
extension UIViewController {
func displayMessageAlert(withAlertTitle alertTitle: String, andMessage message: String) {
let alert = UIAlertController(title: alertTitle, message: message, preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .destructive, handler: nil)
alert.addAction(okAction)
self.present(alert, animated: true, completion: nil)
}
}
UIViewController
上的用法:
self.displayMessageAlert(withAlertTitle: "Your Title", andMessage: "Display your message here.")