2012-10-06 7 views
5

Es gibt viele Beispiele für die Weiterleitung von Daten zwischen zwei View-Controllern, wobei ein View-Controller zu einem anderen View-Controller navigiert.Weiterleiten von Daten mit Delegaten zwischen Viewcontrollern ohne Verbindung zum Navigationscontroller

Aber ist es möglich, Daten mit benutzerdefinierten Protokollen & Delegaten zwischen View-Controllern, die nicht von Navigation Controller verbunden sind?

So könnte ein Beispiel sein: Drei View-Controller nämlich sind, A, B, C. A navigiert zu B und B navigiert zu C. Ich weiß, wie man Daten zwischen A & B mit benutzerdefinierten Protokollen & Delegaten übergeben kann. Aber können wir Daten zwischen C & A übergeben. Somit kann AC 's Delegat sein und dadurch Daten von C empfangen können. Ist das möglich?

Jede Hilfe wäre willkommen.

Antwort

8

Eine Möglichkeit ist für die Weitergabe von Daten von C bis A-Controller Delegierten für Rückwärtsweitergabe von Daten

Siehe simple-delegate-tutorial-for-ios Link verwenden.

Überprüfen Sie basic-delegate-example Verbindung.

Ein anderer Weg ist durch Beitragsmitteilung. für die Rückwärtsübergabe von Daten

Überprüfen Sie Comunicate-Two-Views Link.

+0

Danke für Ihre baldige Antwort. Im ersten Beispiel werden die beiden View-Controller jedoch mithilfe der modalen Ansicht verbunden. Das gleiche gilt für das zweite Beispiel. – footyapps27

+0

ja Benachrichtigungen können verwendet werden, aber ich wollte wissen, ob es mit benutzerdefinierten Protokollen und Delegaten erreicht werden kann. – footyapps27

+0

das zweite Beispiel funktioniert nicht, weil sie das benutzerdefinierte Protokoll nicht erben. Hey, ich weiß, wie Daten mit Delegaten zwischen zwei View-Controller übergeben werden, die mit Navigation Controller verbunden sind. – footyapps27

1

Sie können eine Singleton-Klasse verwenden und das Delegate-Protokoll darin implementieren. So haben Sie die Möglichkeit, Daten zwischen beliebigen View-Controllern zu übertragen.

+0

könnten Sie ein wenig darüber aufklären. – footyapps27

+0

OK. Singleton ist ein Designmuster, das nur eine Instanz hat und Sie können es immer von überall in Ihrem Code aufrufen.So erscheinen in Ihrem Schema A, B und C View Controller eine weitere Klasse D, die auch ohne Verbindung mit navigationController Zugriff auf beliebige Controller haben kann –

+0

Dies sind Beispiele für Singletons NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults]; NSNotificationCenter * notificationCenter = [NSNotificationCenter defaultCenter]; UIApplication * myApplication = [UIApplication sharedApplication]; –

Verwandte Themen