Frage

Ich mag diese Funktion auf meinen apps implementieren, aber ich kann nicht scheinen, um herauszufinden, wie diese Zeile von Codes zu verwenden.

- (void)applicationWillResignActive:(UIApplication *)application {
 //our app is going to loose focus since there is an incoming call
 [self pauseGame];
}

- (void)applicationDidBecomeActive:(UIApplication *)application{
 //the user declined the call and is returning to our app
 [self resumeGame];
}

Ich habe gelesen, dass dies in appdelegates gestellt werden muss, aber ich kann nicht scheinen, um herauszufinden, wie ich meine Pause Aktion nennen könnte, wenn das Spiel zur Zeit in dem Viewcontroller ist.

Danke.

War es hilfreich?

Lösung

Statt die Nachrichten an sich selbst zu senden (das ist die AppDelegate), würden Sie sie auf Ihren View-Controller senden.

Zum Beispiel, wenn AppDelegate eine Eigenschaft für Ihren Hauptspiel-View-Controller hat den Namen „gameViewController“ (wo die Methoden zum Anhalten und Wiederaufnahme durchgeführt wurden):

- (void)applicationWillResignActive:(UIApplication *)application {
    // our app is going to loose focus since there is an incoming call
    [self.gameViewController pauseGame];
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // the user declined the call and is returning to our app
    [self.gameViewController resumeGame];
}

Andere Tipps

Ich weiß, dass dies vor langer Zeit beantwortet wurde. Aber ich wollte noch hinzufügen, dass ein andere (skalierbarer) Lösung Interessenten zu haben ist (zum Beispiel UIViewControllers) registriert ein Interesse an UIApplicationDidEnterBackgroundNotification und UIApplicationWillEnterForegroundNotification.

Dieser Ansatz hat den Vorteil, dass die Anwendung Delegate keine direkte Kenntnis der Objekte, die Macht Notwendigkeit zu reagieren, muss das in den Hintergrund / Vordergrund zu gelangen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top