2016-10-19 6 views
0

Ich arbeite mit einer App und seine RootViewController ist UITabBarController. Ich habe UITabBarController'sviewController mit NewsViewController (Index = 0), MusicViewController (Index = 1) und WeatherViewController (Index = 2) zugewiesen.UITabBarControllers ViewControllers, der zweite wird vor dem ersten geladen

Diese App scheint korrekt zu funktionieren. Als die App gestartet wurde, bemerkte ich jedoch, dass die ViewDidLoad-Methode von MusicViewController vor den Methoden ViewDidLoad, ViewWillAppear und ViewDidAppear von NewsViewController aufgerufen wurde. Aus meiner Sicht sollten nur Lifecycle-Methoden von NewsViewController aufgerufen werden.

Ich kann einfach nicht verstehen, warum ViewDidLoad Methode von MusicViewController (Index = 1) aufgerufen wurde, als die App gestartet wurde.

Danke für jede Info.

+0

, wie Sie den Blick auf das Tabbar sind Zuweisung ich meine durch programmatisch oder von Storyboard? – dreamBegin

+0

@dreamBegin Ich benutze Storyboard. – Sai

Antwort

0

wenn Sie UITabBarViewController bedenken Sie verwenden, dass:

erste, was Last der UITabBarViewController ist sein wird, dann davon die ersten drei View-Controller laden, wo Sie stehen.

Zum Beispiel, wenn Sie in Index 0 sind, lädt View Controller in Index 0,1,2.

dann, wenn Sie zu Index 1 gehen, lädt View Controller in 1,2,3 und so weiter.

Wie `UITabBarViewController 'gerade mit Ihnen arbeitet, ist das normale Verhalten dafür.

Hoffe, diese Antwort ist Ihre Frage.

+0

Ich habe eine andere Anwendung mit Registerkarten mit 3 tabItems erstellt. Für diese App wird nur der erste View-Controller im Index 0 geladen. Also denke ich, dass es nicht immer der Fall ist. – Sai

+0

Behoben? Ich habe das gleiche Problem –

0

vielleicht weil man die Musik Ansicht als Anfangs-View-Controller eingestellt hat versuchen, diese: -

den Nachrichten-View-Controller ausgewählt: -

enter image description here

make Nachrichten sehen die anfänglichen View-Controller : -

enter image description here

+0

hat es für Sie funktioniert? – dreamBegin

+0

Danke für Sie Info. UITabBarController sollte jedoch der "ursprüngliche View Controller" sein, um den Root View Controller der App zu konfigurieren. NewsViewController ist die erste Ansicht, die ich zeigen möchte und die App sieht wie erwartet aus, abgesehen von den oben erwähnten Problemen. – Sai

+0

Während Sie die Nachrichtenansicht festlegen, wird die anfängliche View-Controller-Registerkarte automatisch als Root-View-Controller zugewiesen. – dreamBegin

Verwandte Themen