viewWillAppear, viewDidAppear не вызывается, не запускается
(Это и вопрос, и ответ, так как потребовалось немало усилий, чтобы найти реальный ответ.)
Симптом:viewWillAppear
, viewDidAppear
не вызывались в моем UIViewController.
Причина: встраиваниеUINavigationController
или жеUITabBarController
(мой случай) вUIViewController
как-то прерывает вызов этих методов.
Решение: позвоните им вручную вUIViewController
который содержит вышеупомянутоеUINavigationController
/ UITabBarController
.
Например (при условииprojectNavigationController
твойUINavigationController
):
-(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [projectNavigationController viewWillAppear:animated]; } -(void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [projectNavigationController viewWillDisappear:animated]; } -(void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; [projectNavigationController viewDidAppear:animated]; } -(void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; [projectNavigationController viewDidDisappear:animated]; }
В моем случае у меня был внутреннийUITabBarController
и я назвал методы соответственно, и все было решено.
(Атрибуция по решению:http://davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/)