UITabBarController Странность? - PullRequest
4 голосов
/ 26 июля 2011

Если я обычно загружаю UITabBarController и переключаюсь между представлениями, он вызывает viewWillAppear каждого контроллера представления.Но это не так.

Я хочу переключиться на другую вкладку, как только будет нажата другая вкладка.

Если я укажу вкладкузагрузить - например, [self.tabBarController setSelectedIndex:0] в viewWillAppear одной из вкладок (скажем, вкладка 4) ... Он сразу возвращается к вкладке 0.

Но после этого ... он делаетне вызывать viewWillAppear ни на одной из вкладок, когда я переключаюсь между ними.Например, если я снова перейду к вкладке 4, она не вернется к вкладке 0. Я ожидаю, что это будет бесконечным циклом, так как я ожидаю, что вкладка 0 загрузится, как только сенсорная вкладка 4 коснется.

Но он работает ТОЛЬКО РАЗ !!

Почему ??


Примечание: Вопрос имеетОтредактировано.

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

Я думаю, что нашел решение.Он работает каждый раз, когда вы нажимаете на вкладку, и он вызывает viewWillAppear на обеих вкладках.

Вы можете сделать это в вашем AppDelegate (или в другом месте в UITabBarController'sделегат):

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

Пример кода:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    if([self.tabBarController.viewControllers indexOfObject:viewController] == 1) {
        [self.tabBarController setSelectedIndex:0];
    }
}
0 голосов
/ 26 июля 2011

установка selectedIndex не изменит selectedViewController.Вам придется изменить сам выбранный ViewController.Посмотрите документацию для более подробной информации.

...