viewDidUnload ,viewWillDisappear nicht genannt in tabBarContoller
Ich mache eine view-basierte Anwendung, in dem der erste controller viewcontroller dort ist der login-Bildschirm ,nach dem einloggen der nächsten Ansicht ist tabbar-controller und ich habe 2 tabbar-Elemente auf, die tabbar .
Bis zu diesem funktioniert alles einwandfrei . Wenn ich jetzt zwischen diesen beiden Ansichten wechseln der viewWillDisappear
, viewDidUnload
ist nicht von vorherigen tab klickte .
P. S. Auch die viewwillAppear nicht genannt wurde ,die ich rief, die es mit der Standard-Meldung. Weiß nicht, was die Probleme sind. Hoffe, ich bin klar mit meiner Frage.
- Was fordern Sie, um die UITabBarController Ansicht der Vorderseite Ansicht?
- hast du vergessen, (BOOL)animated?
- Es ist ein ähnliches problem, dieses und hier ist meine Antwort hier: stackoverflow.com/a/33701499/1035899
InformationsquelleAutor mrugen | 2011-07-04
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst von all, beim Umschalten der Ansicht in einem UITabBarController, die
viewDidUnload
Funktion nicht aufgerufen, da die Sicht nicht wirklich entladen. So, das ist normal.Was sollte funktionieren out of the box ist
viewWillAppear
/viewDidDisappear
. Aber es gibt einen Haken.Je nachdem, wie Sie Ihre Ansichten, könnte es sein, dass
viewWillAppear
/viewDidDisappear
werden nicht genannt, die das framework für Sie. Beispielsweise passiert dies, wenn Sie Ihre Ansicht als unteransicht, aber es gibt noch mehr Fälle. Ich weiß nicht, wie Sie die Anzeige der tab-Leiste, so kann nicht sagen, etwas mehr spezifisch über es.Die einfache Lösung schlage ich vor, dies zu beheben, ist das überschreiben der
tabBarController:didSelectViewController:
Selektor in Sie tab bar controller delegate. Von dort aus könnte man implementieren Sie die eigene Logik, oder rufen SieviewDidDisappear
.Dann sollten Sie Ihre TabBar-controller im Hauptfenster.xib.
Zuerst, wenn Sie zeigen loginscreen fügen Sie Ihre RootViewController wie diese:
Und wenn login fertig ist, können Sie entfernen Sie Ihre RootViewController von mainwindow und fügen Sie TabBarController in der mainwindow-so:
Haben Sie einen UINavigationController? Sie bezeichnen nicht ein. Wenn Sie nicht mit einem UINavigationController dann ist es wahrscheinlich, dass Ihr UITabBarController ist nicht immer richtig eingerichtet, da der topViewController.