2015-09-28 15 views
7

Ich möchte einige Code vor meinem Aufruf von ViewDidLoad initialisiert werden, aber es immer zuerst zu ViewDidLoad gehen und dann kommt es zu der Methode applicationDidFinishLaunching. Ich kann nicht verstehen, was vor sich geht?viewdownloader ViewController vor AppDelegate Methode aufgerufen

+0

mögliche Duplikate von [Warum wird die Methode didFinishLaunchingWithOptions meiner App-Delegierten plötzlich NACH meinem RootViewController aufgerufen: viewDidLoad-Methode?] (Http://StackOverflow.com/questions/2853589/why-is-my-app-delegates- didfinishlaunchingwithoptions-methode-all-of-plötzlich-bein) –

+0

können Sie Code of applicationDidFinishLaunch zeigen? –

Antwort

3

Das liegt daran, dass AppDelegate seinen Fenster- und Hauptansicht-Controller automatisch vor applicationDidFinishLaunch instanziiert. Sie sollten die Option "Initial View Controller" in Ihrem Storyboard deaktivieren und das Fenster und den zugehörigen Root-View-Controller in applicationDidFinishLaunch manuell erstellen.

3

Die Dokumentation für application:didFinishLaunchingWithOptions:

Sie diese Methode, um Ihre Anwendung zu initialisieren und vorbereiten es für den Betrieb verwendet werden soll. Es wird aufgerufen, nachdem Ihre Anwendung gestartet und seine Haupt-NIB-Datei geladen wurde. Zum Zeitpunkt, zu dem diese Methode aufgerufen wird, befindet sich Ihre Anwendung im inaktiven Status. Zu einem Zeitpunkt nach diese Methode zurückgibt, wird eine nachfolgende Delegate-Methode aufgerufen, Ihre Anwendung in den aktiven (Vordergrund) Status oder den Hintergrund Zustand zu verschieben.

So wird die Ansicht für View-Controller geladen, sobald die View-Eigenschaft oder -Methode aufgerufen wird. Wenn dies passiert, wird viewDidLoad aufgerufen, wenn Ihre rootViewController-Eigenschaft auf Ihren root ViewController in der nib gesetzt ist, dann ist dies das erwartete Verhalten.

Verwandte Themen