/ / iPhone applicationWillResignActive - Benachrichtigung über aktuelles UIView - iPhone, Objective-C, UIKIT

iPhone applicationWillResignActive - wie aktuelle UIView benachrichtigen - iphone, objective-c, uikit

Ich möchte einen Timer auf meinem Spielbildschirm anhalten, wenn das iPhone gesperrt ist usw. Meine Frage ist, auf welche Weise kann ich das aktuelle UIView, auf das AppDelegate keinen direkten Zugriff hat, am besten benachrichtigen?

Antworten:

3 für die Antwort № 1

1) Ihr Timer sollte wahrscheinlich nicht von verwaltet werdenDer Timer selbst ist kein fester Bestandteil Ihrer Benutzeroberfläche, sondern nur die Anzeige des Timers. (Was passiert, wenn Sie den Timer beispielsweise nach dem Entfernen einer Ansicht fortsetzen möchten?)

2) Jedes Objekt (Ansicht oder Controller enthalten) kann unabhängig auf die entsprechende Benachrichtigung warten. Zum Beispiel in Ihrem View Controller (oder View Code, wenn Sie diese Route wählen):

    [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(pauseTheTimer:)
name:UIApplicationWillResignActiveNotification
object:nil];

Implementieren Sie anschließend eine pauseTheTimer: -Methode, die die Benachrichtigung verarbeitet. (Da es nur ein UIApplication-Objekt gibt, können Sie für das Objekt, wie gezeigt, nil verwenden.)

Dieser Ansatz entkoppelt Ihren Anwendungsdelegierten von den Ansichten und Ansichtscontrollern.

(Oh, vergessen Sie nicht, nicht mehr zu beobachten, wann Ihre Ansicht entladen oder freigegeben wird. Andernfalls kann und wird es zu Abstürzen kommen.)