我一直在努力创建一个UIAlertView在Swift,但由于某种原因,我不能得到正确的声明,因为我得到这个错误:
无法找到一个超载的'init'接受提供的
参数
我是这样写的:
let button2Alert: UIAlertView = UIAlertView(title: "Title", message: "message",
delegate: self, cancelButtonTitle: "OK", otherButtonTitles: nil)
然后我使用:
button2Alert.show()
到目前为止,它正在崩溃,我只是不能得到正确的语法。
我得到了以下UIAlertView初始化代码编译没有错误(我认为最后,变量部分可能是棘手的)。但我必须确保类的自我(我传递的委托)采用UIAlertViewDelegate协议编译错误消失:
let alertView = UIAlertView(
title: "My Title",
message: "My Message",
delegate: self,
cancelButtonTitle: "Cancel",
otherButtonTitles: "OK"
)
顺便说一下,这是我得到的错误(作为Xcode 6.4):
无法为类型“UIAlertView”找到接受参数的初始化式
类型为'的参数列表(标题:字符串,消息:字符串,委托:
MyViewController, cancelButtonTitle: String, otherbuttontitle:
字符串)”
正如其他人提到的,如果你的目标是iOS 8.x+,你应该迁移到UIAlertController。要支持iOS 7,请使用上面的代码(Swift不支持iOS 6)。
我已经做了一个单例类,以便从应用程序的任何地方使用:https://github.com/Swinny1989/Swift-Popups
然后你可以创建一个带有多个按钮的弹出窗口,如下所示:
Popups.SharedInstance.ShowAlert(self, title: "Title goes here", message: "Messages goes here", buttons: ["button one" , "button two"]) { (buttonPressed) -> Void in
if buttonPressed == "button one" {
//Code here
} else if buttonPressed == "button two" {
// Code here
}
}
或者弹出一个按钮,像这样:
Popups.SharedInstance.ShowPopup("Title goes here", message: "Message goes here.")
斯威夫特3
下面是一个简单的例子,如何用Swift 3一个按钮创建一个简单的警报。
let alert = UIAlertController(title: "Title",
message: "Message",
preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ok", style: .default))
present(alert, animated: true)
在上面的例子中,动作的句柄回调被省略了,因为带有一个按钮的警报视图的默认行为是在单击按钮时消失。
下面是如何创建另一个动作,可以用"alert. addaction (action)"添加到警报中。不同的样式是.default, .destructive和.cancel。
let action = UIAlertAction(title: "Ok", style: .default) { action in
// Handle when button is clicked
}