2016-03-25 7 views
0

UIAlertをアプリに一度表示したいので、Bool typ showonesで試してみました。だから私はviewdidLoadでそれをfalseに設定し、それは私がアラートで完了したときにそれを表示するアラートそれは、日付を保存し、showonesをtrueに設定します。だから私はProzessを停止してAppに新しいViewControllerをロードし、showonesが新たにfalseになったときには決して来ません。だから誰も私がアプリで一度それを示すことができるアイデアを持っている。 ご協力ありがとうございます。アプリでUIAlertを一度表示

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 
} 
+1

あなたは私はあなたのコードサンプルを持っていることを確認することができますどのように 'NSUserDefaults' – vadian

+0

、例えば' Bool'の状態を保存する必要がありますか? –

答えて

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

彼は明確にスウィフトを使用している間にObjective-Cの回答を投稿するのはちょっと怪しい。 – James

+0

迅速な例でそれを投稿できますか? –

0

スウィフトコード:

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! 
} 
+0

しかし、私は再びアプリケーションと実行を停止すると、警告が再び表示されます。だから、Prozessが停止し、私はそれを新たに来るアプリをクリックします。だから、私はUserNotificationまたはカメラまたはPhotoLibraryの同意としてfuncを必要とするので、警告が一度来たら、もう一度やり直してください。 –

関連する問題