我一直在努力在Swift中创建UIAlertView,但由于某种原因,由于出现此错误,我无法正确执行该语句:
找不到接受提供的参数的’init’的重载
这是我的写法:
let button2Alert: UIAlertView = UIAlertView(title: "Title", message: "message", delegate: self, cancelButtonTitle: "OK", otherButtonTitles: nil)
然后调用它,我正在使用:
button2Alert.show()
截至目前,它崩溃了,我似乎无法正确理解语法。
从UIAlertView班级:
UIAlertView
//不推荐使用UIAlertView。改用 UIAlertController 和UIAlertControllerStyleAlert的preferredStyle
在iOS 8上,您可以执行以下操作:
let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.Alert) alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.Default, handler: nil)) self.presentViewController(alert, animated: true, completion: nil)
现在UIAlertController是一个用于在iOS 8上与UIAlertViews和UIActionSheets 进行创建和交互的单一类。
UIAlertController
UIActionSheet
编辑: 处理动作:
alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: { action in switch action.style{ case .Default: print("default") case .Cancel: print("cancel") case .Destructive: print("destructive") } }}))
为Swift 3编辑:
let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.alert) alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.default, handler: nil)) self.present(alert, animated: true, completion: nil)
为Swift 4.x编辑:
let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: .alert) alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in switch action.style{ case .default: print("default") case .cancel: print("cancel") case .destructive: print("destructive") }})) self.present(alert, animated: true, completion: nil)