Pracuję nad starszą aplikacją i dowiedziałem się, że moje metody view[Will/Did]Disappear
nie zawsze są uruchamiane prawidłowo.viewWillDisappear nie wywoływane podczas wywoływania popToRootViewControllerAnimated
Sprawa jest, mam (niestandardowy) UIViewController
ustawiony jako rootViewController w AppDelegate. To rootViewController ma UINavigationController
, który ma dwa kontrolery widoku wciśnięty na nim. Gdy użytkownik naciśnie przycisk strony głównej, użytkownik jest wylogowywany. Kiedy później powraca do aplikacji, aplikacja wywołuje [UINavigationController popToRootViewControllerAnimated:YES]
a następnie wyświetla modalne UIViewController
do logowania
Problem jest gdy, np. Wciskam/pop na UINavigationController
normalnie, moja metoda viewWillDisappear
nazywa się prawidłowo. Ale kiedy używam metody popToRootViewControllerAnimated:
, viewWillDisappear
nie jest wywoływana w żadnym z wyświetlanych kontrolerów viewController.
wyszukiwania w internecie dał tylko dwa możliwe powody:
- If using a UINavigationController as a subview, you must call
view[Will/Did]Disappear
yourself - Not calling the proper super methods
Żadna z tych propozycji są przypadek w mojej aplikacji. I nie mam pojęcia, gdzie szukać. Ktoś ma sugestię, co zostało zrobione źle w aplikacji?
dobre znalezisko :). Dzięki! – GoGreen