Как отключить все элементы панели вкладок? - PullRequest
2 голосов
/ 04 марта 2010

Я разрабатываю с iPhone 3.1.3 SDK против iPhone 3GS с ОС 3.1.3. Мое приложение имеет панель вкладок с семью элементами, из которых только два содержат что-то значимое. Поэтому для остальных элементов я снял флажок «Включено» в атрибутах «Элемент панели вкладок» (первая страница, раздел «Элемент панели»).

Это прекрасно работает для двух видимых элементов панели вкладок, которые отключены - не можете щелкнуть по ним. Остальные три, тем не менее, все еще включены в «Больше» -таблицы при нажатии на элемент панели вкладок «Еще» в самом правом углу - я получаю их (пустое) представление таблицы. Мне кажется, что это ошибка - поскольку эти элементы не включены, они не должны нажиматься, даже в «Больше» -таблицы. Это происходит как в эмуляторе в режиме отладки, так и на моем iPhone в режиме выпуска.

Так, как я могу отключить элементы панели вкладок в «Больше» -таблицы?

Ответы [ 3 ]

6 голосов
/ 12 июля 2011

Я не могу получить tabBarController: shouldSelectViewController: для запуска, но это работает:

for(UITabBarItem *item in self.tabBar.items)
    item.enabled = false;

Возможно, это не то, что вы хотите, потому что отключает даже элемент «Еще».

6 голосов
/ 04 марта 2010

Хм. Это почти наверняка ошибка. Я хотел бы призвать вас подать его как единое целое; Я конечно буду. Я попытался создать пример приложения, чтобы проверить это, и подтвердил поведение, которое вы видите. Интересно, что в протоколе UITabBarControllerDelegate есть такой метод:

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

Но этот метод не вызывается, когда вы выбираете контроллер представления из & ldquo; Больше & rdquo; элемент панели вкладок. На данный момент единственный способ увидеть эту работу - это удалить контроллеры представления, которые будут отображаться в & ldquo; Больше & rdquo; просмотр контроллера, что делает невозможным их выбор из-за отсутствия.

0 голосов
/ 20 мая 2010

Вы должны реализовать протокол "UITabBarControllerDelegate" и установить его в качестве делегата для tabBarController. Работает очень хорошо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...