在应用程序中显示UIAlert一次

时间:2016-03-25 19:36:56

标签: swift boolean uialertview

我想在应用程序中显示一次UIAlert,所以我尝试了Bool typ showones。所以我在viewdidLoad中将其设置为false,然后当我点击“警报”中的“完成”时它显示警报它保存日期并将showones设置为true。所以它永远不会发生,但是当我停止Prozess并在应用程序中新增时,它会加载ViewController new,然后showones重新出错。所以任何人都有一个想法,我可以在应用程序中显示它一次。 谢谢你的帮助。

  var showones: Bool?

     override func viewDidLoad() {
        super.viewDidLoad()

        showones = false
    }

      if showones == false {
         let AlertView = DateAlertController(nibName: "DateAlertController", bundle: nil)

         let AlertDateView = SimpleAlert.Controller(view: AlertView.view, style: .Alert)
         showAlert(AlertDateView)                   
         let date = AlertView.DatePicker.date
         PAlertdate = date
    }

        alert.addAction(SimpleAlert.Action(title: "Done", style: .Default, handler: { (action) -> Void in
            if self.Segmentedevery.selectedSegmentIndex == 0 {
                let newDateEvery = NSEntityDescription.insertNewObjectForEntityForName("Everyday", inManagedObjectContext: self.mgdContext) as! Everyday
                newDateEvery.picturedate = self.PAlertdate
                newDateEvery.psetremind = true
                self.showones = true   
 }

2 个答案:

答案 0 :(得分:0)

使用NSUserDefaults保存BOOL状态是个好主意。

if self.canShowAlert() {
    //your code ...

    //set bool state to be false in userDefaults
    let userDefaults = NSUserDefaults.standardUserDefaults()
    userDefaults.setBool(false, forKey: "alert")
    userDefaults.synchronize()
}

func canShowAlert()-> Bool {
    let userDefaults = NSUserDefaults.standardUserDefaults()
    var canShow: Bool = false
    if let _ = userDefaults.objectForKey("alert") 
        canShow = userDefaults.boolForKey("alert")
    } else {
        userDefaults.setBool(true, forKey: "alert")
        canShow = true
        userDefaults.synchronize()
    }
    return canShow
}

答案 1 :(得分:0)

Swift Code:

func canShowAlert() -> Bool {
    var userDefaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
    showones = false
    if (userDefaults.objectForKey("Alert")) != nil {
        userDefaults.setBool(false, forKey: "Alert")

    }
    else {
         userDefaults.setBool(true, forKey: "Alert")
        showones = true
    }
    userDefaults.synchronize()
    return showones!
}