我想在应用程序中显示一次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
}
答案 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!
}