#iphone #uiviewcontroller #uinavigationcontroller #uitabbarcontroller #ios5
#iPhone #uiviewcontroller #uinavigationcontroller #uitabbarcontroller #ios5
Вопрос:
Я использую контроллер представления, который содержит tabbarcontroller (4 вкладки). каждая панель вкладок имеет контроллер навигации.
Мой вопрос: viewcontroller, который использовался в контроллере навигации, в котором viewDidAppear не вызывается во время вызовов viewWillAppear?
Он отлично работает в iOS4.x, но это условие появилось в iOS5.
viewcontroller
|
|
tabbarcontroller (4 tabs)
|
|
uinavigationController (Y)
|
|
uiViewcontroller (X)
В этом контроллере ‘X’ viewDidAppear вызывался не только в iOS 5, но и в iOS44.x??
Я пытаюсь
В «Y» я использую
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[viewController viewDidAppear:animated];
}
Он будет запускать ‘X’ viewDidAppear только один раз.
Мне это нужно каждый раз, когда появляется view.
Пожалуйста, помогите, спасибо
Комментарии:
1. в вашем viewWillAppear вызываете ли вы [super viewWillAppear], если нет, вы должны быть.
2. у меня есть проверка super, и пришел тот же результат..
Ответ №1:
Вы можете установить свойство делегата вашего UITabBarController и соответствующим образом реагировать на didSelectViewController:
метод для вызова кода в ViewController (X).
Ответ №2:
я думаю, вы можете создать uitabbarcontroller, затем скрыть панель вкладок, а затем, когда вы переключите контроллер представления, просто удалите скрытое свойство .. тогда такая проблема не будет отображаться, я так думаю…..