Как добавить кнопку на панель вкладок?

В моем приложении для iPhone есть контроллер панели вкладок в нижней части представления - и на данный момент у меня есть три кнопки на нем. Однако я хочу добавить больше, но для этого мне нужно превратить последнюю из трех кнопок в кнопку «Еще ...», потому что в противном случае текст на других кнопках будет переходить друг в друга.

Я знаю, что если у вас более 5 кнопок на панели вкладок, тогда автоматически создается дополнительная кнопка, но есть ли способ вручную вызвать ее с помощью возможностей редактирования?

Спасибо.


person Graeme    schedule 12.01.2010    source источник
comment
что происходит, когда вы добавляете еще одну кнопку на панель вкладок?   -  person stefanB    schedule 12.01.2010
comment
Гм .. ничего? Вам нужно 5, чтобы активировалась кнопка «Еще ...».   -  person Graeme    schedule 12.01.2010
comment
ты нашел решение? не могли бы вы поделиться?   -  person Pria    schedule 17.12.2010


Ответы (4)


Вам не нужно вручную создавать кнопку «Еще ...». Просто добавьте все необходимые вам контроллеры представления в контроллер панели вкладок, и он сделает все остальное.

person gerry3    schedule 12.01.2010
comment
MMMM Я понял это, но я хочу, чтобы отображались только 3 кнопки, одна из которых - кнопка «Еще». Остальное я хочу показать только тогда, когда пользователь нажимает больше, поэтому мне нужно как-то вручную реализовать это. - person Graeme; 12.01.2010
comment
Сколько всего у вас вкладок? Зачем нужны дополнительные краны без причины? Вы можете создать свою собственную вкладку «Дополнительно», а затем отобразить на ней контроллер навигации и табличное представление с другими параметрами. - person gerry3; 12.01.2010
comment
Всего у меня будет пять или шесть, но у каждого из них длинные имена, и они выглядят сжатыми, когда все отображаются сразу. Я думал, что это может быть единственный способ - я надеялся, что смогу каким-то образом вызвать кнопку «Больше», вместо того, чтобы делать все это вручную. - person Graeme; 12.01.2010

Вы можете установить последнюю кнопку панели как кнопку «Еще», даже если есть только три вкладки. Код инициализации для этого элемента панели вкладок будет:

self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemMore tag:0];
person vidya    schedule 22.09.2010

Сделайте свои имена короче или не используйте панель вкладок. У вас будет пять или шесть контроллеров представления, но вы хотите, чтобы в любой момент времени были доступны только два? Если две трети ваших просмотров будут в списке «больше», почему бы просто не отобразить их все в списке? Тогда вы могли бы освободить место внизу, и для просмотра не потребовалось бы дополнительных нажатий.

Если вы действительно хотите это сделать, вам следует написать замену для UITabBarController. Я просмотрел UIKit и даже пробовал использовать -_viewControllersInTabBar, но ограничение в пять кнопок предполагается в нескольких местах в UITabBarController, так что вам лучше написать свое собственное.

Возможно, вы заметили, что некоторые приложения для iPad, например YouTube, имеют более пяти элементов панели вкладок: alt text
(источник: apple.com)

Как это может быть, если UITabBarController настолько одержим тем, чтобы иметь не более пяти контроллеров представления? Возможно, Apple добавила в UITabBarController в SDK 3.2 какой-то частный метод, который мог бы вам помочь. Может быть, он называется чем-то вроде -_setMaximumNumberOfItems:, а может быть, он устанавливает переменную экземпляра NSUInteger с именем _maxItems. Если бы Apple действительно добавила такой частный метод, вам все равно пришлось бы ждать выхода iPhone-совместимой версии 3.2, и даже в этом случае использование частных методов - это плохо.

Измените названия вкладок. Не такое уж большое дело.

person lemnar    schedule 16.03.2010

так что нельзя сделать даже 6 view tab bar application?

даже если имя каждого очень короткое

скажем что-нибудь в этом роде

красный красный красный красный красный

вместо желтого желтого желтого желтого желтого

person AlsonToh-SG    schedule 18.10.2010