Как отменить открытие контроллера представления в событии didSelectViewController протокола UITabBarControllerDelegate - PullRequest
1 голос
/ 12 декабря 2010

Я реализовал событие UITabBarControllerDelegate:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
    if (viewController == [tabBarController.viewControllers objectAtIndex:0]) {
        //HERE:check some condition and cancel opening the viewController if needed
    }
}

В приведенной выше функции, после проверки какого-либо условия, я хотел бы, чтобы приложение делало что-то еще (то есть, открыв другой контроллер представления) вместо открытия правого контроллера представления этого пользователя.выбранный на панели вкладок элемент.Поведение события:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

не соответствует моему требованию.

1 Ответ

1 голос
/ 30 декабря 2012

Если возврат NO из shouldSelectViewController не отменяет переход на другую вкладку, ваш делегат или что-то другое неправильно подключено. Проверьте, действительно ли функция достигается во время выполнения.

Тестирование в shouldSelectViewController, возврат NO и представление другого контроллера представления - это правильный способ представления других представлений на вкладке.

...