快速警报视图(iOS8),单击确定和取消按钮,点击该按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速警报视图(iOS8),单击确定和取消按钮,点击该按钮相关的知识,希望对你有一定的参考价值。

我在Swift编写的Xcode中有一个警报视图,我想确定用户选择哪个按钮(它是一个确认对话框)什么都不做或者执行某些操作。目前我有:

@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()
    }

我可能使用错误的按钮,请更正我,因为这对我来说都是新的。

谢谢!

答案

如果你使用的是ios8,你应该使用UIAlertController - UIAlertView是deprecated

以下是如何使用它的示例:

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/

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)
另一答案
var refreshAlert = UIAlertController(title: "Log Out", message: "Are You Sure to Log Out ? ", preferredStyle: UIAlertControllerStyle.Alert)

refreshAlert.addAction(UIAlertAction(title: "Confirm", style: .Default, handler: { (action: UIAlertAction!) in
    self.navigationController?.popToRootViewControllerAnimated(true)
}))

refreshAlert.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: { (action: UIAlertAction!) in

    refreshAlert .dismissViewControllerAnimated(true, completion: nil)


}))

presentViewController(refreshAlert, animated: true, completion: nil)
另一答案

您可以使用UIAlertController轻松完成此操作

let alertController = UIAlertController(
       title: "Your title", message: "Your message", preferredStyle: .alert)
let defaultAction = UIAlertAction(
       title: "Close Alert", style: .default, handler: nil)
//you can add custom actions as well 
alertController.addAction(defaultAction)

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

.

参考:iOS Show Alert

另一答案

针对swift 3进行了更新:

//函数定义:

@IBAction func showAlertDialog(_ sender: UIButton) {
        // Declare Alert
        let dialogMessage = UIAlertController(title: "Confirm", message: "Are you sure you want to Logout?", preferredStyle: .alert)

        // Create OK button with action handler
        let ok = UIAlertAction(title: "OK", style: .default, handler: { (action) -> Void in
             print("Ok button click...")
             self.logoutFun()
        })

        // Create Cancel button with action handlder
        let cancel = UIAlertAction(title: "Cancel", style: .cancel) { (action) -> Void in
            print("Cancel button click...")
        }

        //Add OK and Cancel button to dialog message
        dialogMessage.addAction(ok)
        dialogMessage.addAction(cancel)

        // Present dialog message to user
        self.present(dialogMessage, animated: true, completion: nil)
    }

// logout Fun()函数定义:

func logoutFun()
{
    print("Logout Successfully...!")
}

以上是关于快速警报视图(iOS8),单击确定和取消按钮,点击该按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何清除视图框架

通过点击外部或取消按钮在 iOS 中关闭警报视图

在 iOS8.3 上显示警报视图时,iOS 键盘通知不必要地触发

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

如何取消并从UIAlertView调用用户操作

应用程序将进入后台并进入前台遇到黑屏