我一直在努力在 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)
NowUIAlertController是一个单独的类,用于创建我们在 iOS 8 上称为UIAlertViews 和s 的内容并与之交互。UIActionSheet
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)