带有 OK 和 Cancel 的 Swift 警报视图:点击了哪个按钮?

Swift alert view with OK and Cancel: which button tapped?(带有 OK 和 Cancel 的 Swift 警报视图:点击了哪个按钮?)
本文介绍了带有 OK 和 Cancel 的 Swift 警报视图:点击了哪个按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我在 Xcode 中有一个用 Swift 编写的警报视图,我想确定用户选择了哪个按钮(它是一个确认对话框)什么都不做或执行什么.

I have an alert view in Xcode written in Swift and I'd like to determine which button the user selected (it is a confirmation dialog) to do nothing or to execute something.

目前我有:

@IBAction func pushedRefresh(sender: AnyObject) {
    var refreshAlert = UIAlertView()
    refreshAlert.title = "Refresh?"
    refreshAlert.message = "All data will be lost."
    refreshAlert.addButtonWithTitle("Cancel")
    refreshAlert.addButtonWithTitle("OK")
    refreshAlert.show()
}

我可能用错了按钮,请纠正我,因为这对我来说是全新的.

I'm probably using the buttons wrong, please do correct me since this is all new for me.

推荐答案

如果你使用的是 iOS8,你应该使用 UIAlertController — UIAlertView 是 已弃用.

If you are using iOS8, you should be using UIAlertController — UIAlertView is deprecated.

这是一个如何使用它的示例:

Here is an example of how to use it:

var refreshAlert = UIAlertController(title: "Refresh", message: "All data will be lost.", preferredStyle: UIAlertControllerStyle.Alert)

refreshAlert.addAction(UIAlertAction(title: "Ok", style: .Default, handler: { (action: UIAlertAction!) in
  print("Handle Ok logic here")
  }))

refreshAlert.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: { (action: UIAlertAction!) in
  print("Handle Cancel Logic here")
  }))

presentViewController(refreshAlert, animated: true, completion: nil)

您可以看到 UIAlertAction 的块处理程序处理按钮按下.一个很棒的教程在这里(尽管本教程不是使用 swift 编写的):http://hayageek.com/uialertcontroller-example-ios/

As you can see the block handlers for the UIAlertAction handle the button presses. A great tutorial is here (although this tutorial is not written using swift): http://hayageek.com/uialertcontroller-example-ios/

Swift 3 更新:

let refreshAlert = UIAlertController(title: "Refresh", message: "All data will be lost.", preferredStyle: UIAlertControllerStyle.alert)

refreshAlert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action: UIAlertAction!) in
    print("Handle Ok logic here")
}))

refreshAlert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: { (action: UIAlertAction!) in
    print("Handle Cancel Logic here")
}))

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

Swift 5 更新:

let refreshAlert = UIAlertController(title: "Refresh", message: "All data will be lost.", preferredStyle: UIAlertControllerStyle.alert)

refreshAlert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action: UIAlertAction!) in
      print("Handle Ok logic here")
}))

refreshAlert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: { (action: UIAlertAction!) in
      print("Handle Cancel Logic here")
}))

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

Swift 5.3 更新:

let refreshAlert = UIAlertController(title: "Refresh", message: "All data will be lost.", preferredStyle: UIAlertController.Style.alert)

refreshAlert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action: UIAlertAction!) in
      print("Handle Ok logic here")
}))

refreshAlert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: { (action: UIAlertAction!) in
      print("Handle Cancel Logic here")
}))

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

这篇关于带有 OK 和 Cancel 的 Swift 警报视图:点击了哪个按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

iOS: How to run a function after Device has Rotated (Swift)(iOS:设备旋转后如何运行函数(Swift))
How can you rotate text for UIButton and UILabel in Swift?(如何在 Swift 中旋转 UIButton 和 UILabel 的文本?)
Undefined symbols for architecture armv7: quot;_SCNetworkReachabilityCreateWithAddressquot;(架构 armv7 的未定义符号:“_SCNetworkReachabilityCreateWithAddress)
XCode dylib looking in /usr/lib(XCode dylib 在/usr/lib 中查找)
Are private frameworks supported on iOS?(iOS 是否支持私有框架?)
Embedding a framework within a framework (iOS 8+)(在框架中嵌入框架(iOS 8+))