2

在尝试实现 UI 警报时,我遇到了一些问题。我在 Xcode 8 beta 4 中使用 swift 3.0,我试图有一个激活警报的按钮,一个按钮(取消)关闭警报,另一个(好的)执行一个动作,就像 UIAction 按钮一样,但是我一直无法甚至可以显示警报。

var warning = UIAlertController(title: "warning", message: "This will erase all content", preferredStyle: .Alert)

var okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) {
    UIAlertAction in
    NSLog("OK Pressed")
}

var cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) {
    UIAlertAction in
    NSLog("Cancel Pressed")
}

warning.addAction(okAction) {
   // this is where the actions to erase the content in the strings 
}
warning.addAction(cancelAction)

self.presentViewController(warning, animated: true, completion: nil)
4

1 回答 1

3

该代码与 Swift 3 不兼容。诸如.Alertnow 之类的代码.alert。而且presentViewController方法完全不同。

这应该有效。

let warning = UIAlertController(title: "warning", message: "This will erase all content", preferredStyle: .alert)

    let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) {
        UIAlertAction in
        NSLog("OK Pressed")
        //ok action should go here
    }


    let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel) {
        UIAlertAction in
        NSLog("Cancel Pressed")
    }

    warning.addAction(okAction)
    warning.addAction(cancelAction)

    present(warning, animated: true, completion: nil)

为什么在创建警报之后addAction(okAction)而不是在创建警报时关闭?

希望这可以帮助!

于 2016-08-18T03:13:36.417 回答