2009-03-14 4 views
0

Я пытаюсь получить доступ к экземпляру _tabBar из UITabBarController. Я пытаюсь скрыть tabBar в определенных ситуациях, для этого я добавил расширение для UITabBarController, где я могу получить доступ к экземпляру _tabBar и вызвать сообщение setHidden. Это работает при компиляции для симулятора, но когда я компилирую для устройства, я получаю следующую ошибкуКак я могу получить доступ к экземпляру _tabBar из UITabBarController

"_OBJC_IVAR _ $ _ UITabBarController._tabBar", ссылки из: _OBJC_IVAR _ $ _ UITabBarController._tabBar $ non_lazy_ptr в UITabBarController + TabBar.o

Что нужно добавить к моим флагам компилятора? и почему это работает при компиляции для симулятора.

Заранее спасибо.

ответ

3

По данным Документов UITabBarController:

Вы никогда не должны пытаться манипулировать объект UITabBar сами хранящийся в этом свойстве. Если вы сделаете попытку сделать , то на экране панели вкладок будет выбрано исключение . Чтобы настроить элементы для вашего интерфейса панели вкладок, вы должны вместо этого назначить одному или нескольким настраиваемым диспетчерам виду viewControllers . Панель вкладок собирает необходимые элементы табуляции из указанных вами контроллеров вида .

Вид бара вкладки, предусмотренный настоящего свойства только для ситуаций, когда вы хотите, чтобы отобразить лист действий с использованием showFromTabBar: метод класса UIActionSheet.

Если вы нажимаете свой UITAbBarController на стек навигационного контроллера, вы можете установить свойство hidesBottomBarWhenPushed в значение YES, и это сработает.

Возможно, в суперклассе UITAbBarController может быть еще один API, который сделает это. Если нет, вы можете пройти через иерархию подзаголовков и скрыть необходимый.

+0

Это была совершенно другая вещь, которую я искал, чтобы сделать, тем не менее, экземпляр TabBar теперь доступно в iPhone OS 3.0, она была добавлена ​​к классу UITabBarController. – carlos

Смежные вопросы