Wie für den Zugriff auf mehrere View-Controller aus dem App Delegate und/oder anderen View-Controller?
Ich vermute, dies ist eine sehr einfache Antwort oder bin ich auf dem ganz falschen Pfad. Ich muss in der Lage sein, Variablen und Felder zuzugreifen etc in einer view-controller entweder aus dem App-Delegate oder einem anderen view-controller.
Bisher konnte ich diesen aus dem App Delegate auf meinen ersten view-controller, indem Sie Folgendes in 'didFinishLaunchingWithOptions':
viewController = (ViewController *)selbst.Fenster.rootViewController;
Danach konnte ich/kann auf Methoden zugreifen, die innerhalb der view-controller aus dem App Delegieren, indem Sie die normale [viewController someMethod];.
Wenn ich mehrere view-Controller (haben derzeit 3), wie kann ich auf die anderen, die von anderen Standorten aus? Übrigens habe ich festgestellt, dass EINIGE Erklärungen, aber alle reden nib/xibs in Kombination mit code. Ich weiß nicht über Sie, ich habe ein storyboard und code (ich bin neu in der app dev).
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrem appDelegate Sie kann einfach erklären, Eigenschaften, die halten wird, Verweise auf dieses viewControllers.
Beispiel:
in AppDelegate.h
in AppDelegate.m
Wo immer Sie sind, erstellen diese
viewControllers
können Sie den Zugriff auf IhreappDelegate
und legen Sie dessen Eigenschaften zu halten, die richtige Referenz. Nicht vergessenAppDelegate.h
zu dieser Datei.Und ab dann können Sie auf diesen viewController als appDelegate Eigentum.
EDIT: für storyBoarding es sieht aus wie wäre dies sicher zu tun, in
- (void)viewDidLoad
.Oder ein noch besserer Ansatz wäre (wie Richard erwähnt) um dies zu tun
- (id)initWithCoder:(NSCoder *)decoder
"Bei der Instanziierung eines view-controller aus einem storyboard, iOS initialisiert die new-view-controller durch Aufruf der initWithCoder: Methode statt." von Dokumentation
Aber bitte beachten Sie, wenn Sie die änderung aller Daten aus einem view controller zum anderen möchten Sie vielleicht zu prüfen, halten Sie diese Daten in einem separaten Teil des Codes (so genannte
model
immodel-view-controller
- Ansatz). Dies wäre der sicherste Weg zum "Austausch" von Daten zwischen viewControllers.