Я программно переключаю представления TabBarController из контроллера модального представления (см. этот вопрос а>). Делегат правильно переключает вкладки, но viewDidAppear
не вызывается на вновь представленной вкладке. Есть ли способ заставить viewDidAppear вызываться? Или я что-то не так делаю?
ViewDidAppear не вызывается при программном переключении представлений TabBarController
Ответы (3)
Наконец-то понял это - это потому, что я вызывал переключатель вкладок, прежде чем закрыть модальное представление. Как только я изменил порядок, он работал нормально.
person
bmueller
schedule
30.08.2012
Принудительно вызывать viewDidAppear;
- (void)viewController:(YourViewControllerSubclass *)viewController isBeingDismissedWithImage:(BOOL)imageTaken {
// Select the tabbar index (which is the second controller)
[secondController viewDidAppear:YES];
}
person
DLende
schedule
30.08.2012
Это не устраняет проблему, а скорее обходит ее, что может привести к путанице в будущем.
- person keji; 20.10.2015
У меня была такая же проблема раньше. В моем TabBarViewController viewDidLoad()
я программно выбрал другую вкладку как selectedIndex = 3
. Целевой viewController viewDidAppear()
не вызывается. Но если я перемещу selectedIndex = 3
с viewDidLoad()
на viewDidAppear()
, проблема будет решена.
person
Wu Yuan Chun
schedule
14.02.2017