swift - UiAlertView 或 UiAlertController 在 Swift 中只显示一次

标签 swift uialertview uialertcontroller

如何让我的 UiAlertControllerUIAlertView 在 Swift 中只显示一次?

override func viewDidLoad() {

    var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()

    if let nameIsNotNill = defaults.objectForKey("name") as? String {
        self.name.text = defaults.objectForKey("name") as String
    }

    if let phoneIsNotNill = defaults.objectForKey("phone") as? String {
        self.phone.text = defaults.objectForKey("phone") as String
    }

    var alert = UIAlertController(title: "Disclaimer", message: "WE STRIVES TO PROVIDE ACCURATE, UP-TO-DATE INFORMATION ON THIS APPS.", preferredStyle: UIAlertControllerStyle.Alert)

    alert.addAction(UIAlertAction(title: "Agree", style: UIAlertActionStyle.Default, handler: nil))
    alert.addAction(UIAlertAction(title: "Disagree", style: UIAlertActionStyle.Default, handler: nil))

    self.presentViewController(alert, animated: true, completion: nil)

    super.viewDidLoad()

}

最佳答案

import 命令下声明一个全局 Bool 变量:

var justOnce:Bool = true

你应该这样使用它:

override func viewDidLoad() {
    super.viewDidLoad()
    var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()

    if let nameIsNotNill = defaults.objectForKey("name") as? String {
        name.text = defaults.objectForKey("name") as String
    }

    if let phoneIsNotNill = defaults.objectForKey("phone") as? String {
         phone.text = defaults.objectForKey("phone") as String
    }

    if justOnce {
       var alert = UIAlertController(title: "Disclaimer", message: "WE STRIVES TO PROVIDE ACCURATE, UP-TO-DATE INFORMATION ON THIS APPS.", preferredStyle: UIAlertControllerStyle.Alert)
       alert.addAction(UIAlertAction(title: "Agree", style: UIAlertActionStyle.Default, handler: nil))
alert.addAction(UIAlertAction(title: "Disagree", style: UIAlertActionStyle.Default, handler: nil))
       self.presentViewController(alert, animated: true, completion: nil)

        justOnce = false
    }
}

关于swift - UiAlertView 或 UiAlertController 在 Swift 中只显示一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28285993/

相关文章:

ios - 如何以编程方式在所有 iOS 设备上的 View 之间保持相等的空间?

ios - 什么会导致 UIAlertController 操作永远不会被调用?

c# - 将文本字段添加到 UIAlertView

ios - 如何在 Swift 的 UIAlertView 中调整附件 View 的大小

ios - 在 Swift 中使用 UIAlertController 的内存泄漏

ios - 有没有办法在 Swift 中将 UIPickerView 添加到 UIAlertController(Alert 或 ActionSheet)中?

ios - 选择器 View 和 if 语句

swift - 堆栈 View 、Swift 2、iOS 9.3、XCode 7 中的自动约束冲突

ios - swift UIGraphicsGetImageFromCurrentImageContext 无法释放内存

iphone - IOS 中的警报通知