Я пытаюсь не выбрать вкладки вообще в моем приложении. Сначала первая вкладка выбрана, но я хотел бы отменить выбор ее так, никакие вкладки вообще не будут выбраны.
Не спрашивайте меня, почему, это - просто тот способ, которым клиент хочет это! hehe
Спасибо за помощь!
PS: Я уже попробовал:
// rootController = UITabBarController
rootController.tabBar.selectedItem = 0;
rootController.tabBar.selectedItem = nil;
[rootController setSelectedIndex:[rootController.items objectAtIndex:0]];
[rootController setSelectedIndex:nil];
[rootController setSelectedIndex:0];
// That one works : (but I can't select 0 or -1 for instance)
[rootController setSelectedIndex:2];
Какие-либо идеи? Еще раз спасибо!
Из документации:
Этот контроллер представления является тем, чье пользовательское представление в настоящее время отображается интерфейсом панели вкладок. Указанный контроллер представления должен находиться в массиве viewControllers. Присвоение нового контроллера представления этому свойству изменяет текущее отображаемое представление, а также выбирает соответствующую вкладку на панели вкладок. Изменение контроллера представления также соответствующим образом обновляет свойство selectedIndex. По умолчанию это свойство имеет значение nil.
Итак, я предполагаю, что вам нужно [rootController setSelectedViewController: nil];
.
Обновление:
Чтобы немного прояснить ситуацию,
[self.tabBarController setSelectedViewController:nil];
Существует также документация по предотвращению выбора вкладок, которая может оказаться полезной.
Вы можете отменить выбор всех элементов панели вкладок, если вы используете экземпляр UITabBar без UITabBarController.
В этом случае приведенный ниже код работает хорошо.
[tabBar setSelectedItem:nil];
Если UITabBar является частью UITabBarController, то приложение завершится с исключением:
'Directly modifying a tab bar managed контроллером панели вкладок, не allowed."
Другими словами, если вы хотите, чтобы это работало, вам нужно управлять процедурами таб-бара вручную без контроллера.