Wie kann ich eine Benachrichtigung mit Parametern auf Objective-C senden?

7

Ich muss die Benachrichtigung @"willAnimateRotationToInterfaceOrientation" mit den Parametern toInterfaceOrientation und duration ( Frage # 1 ) an alle UIViewController der Anwendung senden ( Frage # 2 <) / stark>). Wie schreibe ich Code dafür?

%Vor%     
Dmitry 11.04.2013, 19:53
quelle

3 Antworten

19

Verwenden Sie postNotificationName:object:userInfo: und bündeln Sie alle Parameter, die Sie übergeben möchten, im userInfo Wörterbuch.

Beispiel:

Sie können eine Benachrichtigung wie folgt posten

%Vor%

Und dann holen Sie die Informationen, die Sie bestanden haben, indem Sie:

%Vor%

Um zusammenzufassen, was oben gesehen wurde, benötigt der Selektor, der eine Benachrichtigung verarbeitet, einen optionalen Parameter vom Typ NSNotification und Sie können alle Informationen speichern, die Sie im userInfo Wörterbuch weitergeben möchten.

    
Gabriele Petronella 11.04.2013, 20:00
quelle
1

Das funktioniert nicht so, wie du denkst. Ein Benachrichtigungsaufruf hat einen optionalen Parameter, der ein NSNotification -Objekt ist:

%Vor%

Das Benachrichtigungsobjekt verfügt über die Eigenschaft userInfo . Dies ist ein Wörterbuch, das zum Übermitteln relevanter Informationen verwendet werden kann. Sie können jedoch keine willkürlichen Selektoren registrieren, die vom Benachrichtigungscenter aufgerufen werden sollen. Sie geben dieses Wörterbuch mit der Benachrichtigung weiter, indem Sie -postNotificationName:object:userInfo: anstelle von -postNotificationName:object: ; Der Parameter userInfo ist nur ein NSDictionary , das Sie erstellen.

    
Seamus Campbell 11.04.2013 20:01
quelle
0

Sie machen eine einfacher zu rufende Methode, die weniger Argumente benötigt und den Komplex für Sie aufruft.

%Vor%

Sie sollten jedoch nicht willAnimateRotationToInterfaceOrientation: selbst aufrufen. Erstellen Sie stattdessen eine Methode namens form this-Methode, die den Code enthält, den Sie bei der Rotation und auch zu anderen Zeiten aktivieren möchten.

    
Alex Wayne 11.04.2013 20:01
quelle

Tags und Links