小编典典

如何在 Swift 中创建 UIAlertView?

all

我一直在努力在 Swift 中创建一个 UIAlertView,但由于某种原因,我无法得到正确的声明,因为我收到了这个错误:

找不到接受提供的参数的“init”的重载

这是我写的:

let button2Alert: UIAlertView = UIAlertView(title: "Title", message: "message",
                     delegate: self, cancelButtonTitle: "OK", otherButtonTitles: nil)

然后调用它我正在使用:

button2Alert.show()

截至目前,它正在崩溃,我似乎无法正确使用语法。


阅读 131

收藏
2022-03-10

共1个答案

小编典典

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

编辑: 处理动作:

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)
2022-03-10