2017-05-23 5 views
0

ich Begriffe Vereinbarung haben, die nur einmal um Pop-up braucht, aber es wird jedes Mal, wenn die App gestartet Aufspringen, wie kann ich es nur einmal machen Pop-up und wenn vereinbart gedrückt nie Pop wieder hoch, es sei denn App wird gelöscht und redownloadet. Ich versuche, How can I show a view on the first launch only?UIAlertView zu zeigen nur einmal

class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate { 

    var window: UIWindow? 

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     if !UserDefaults.standard.bool(forKey: "Walkthrough") { 
      UserDefaults.standard.set(false, forKey: "Walkthrough") 
     } 
    } 

} 

class FirstViewController: UIViewController, UIAlertViewDelegate { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     if UserDefaults.standard.bool(forKey: "Walkthrough") { 
      print("already shown") 
      // Terms have been accepted, proceed as normal 
     } else { 
      agree() 
     } 
    } 

} 

zu folgen meiner Funktion vereinbaren ist ein Alarm-Controller

Antwort

0

i nach hinzuzufügen vergessen haben, zustimmen()

UserDefaults.standard.set(true, forKey: "Walkthrough") 
+0

Bitte benutzen Sie den Link Bearbeiten auf Ihre Frage zusätzliche Informationen hinzuzufügen. Die Schaltfläche Post-Antwort sollte nur für vollständige Antworten auf die Frage verwendet werden. - [Aus der Bewertung] (/ Review/minderwertigen-Beiträge/16202079) – dfd

+1

bearbeiten, was? Die vollständige Antwort war, dass ich vergessen habe, die Zeile hinzuzufügen, um es auf wahr zu setzen, was die Antwort ist – user8000557

0

Nur eine Bool in UserDefaults mit der Antwort speichern, wenn vereinbart oder nicht und prüfen, ob die Taste "WalkThrough" existiert oder nicht. Wenn nicht, werden Sie ihm den Alarm zeigen, wenn nichts gefunden wird.

dies in viewDidAppear Verfahren zum anfänglichen Viewcontroller hinzufügen:

let alert = UIAlertController(title: "Message", message: "You need to agree to terms and conditions", preferredStyle: .alert) 
    let action = UIAlertAction(title: "Not Agreed", style: .default) { (action) in 

     UserDefaults.standard.set(false, forKey: "WalkThrough") 

     alert.dismiss(animated: true, completion: nil) 
    } 
    let action2 = UIAlertAction(title: "Agreed", style: .default) { (action) in 

     UserDefaults.standard.set(true, forKey: "WalkThrough") 

     alert.dismiss(animated: true, completion: nil) 
    } 

    alert.addAction(action) 
    alert.addAction(action2) 


    if (UserDefaults.standard.object(forKey: "WalkThrough") == nil) { 
     //show alert and save answer 
     self.present(alert, animated: true, completion: nil) 

    }