Как добавить кнопку «еще» в панель вкладок? - PullRequest
1 голос
/ 12 января 2010

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

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

Спасибо.

Ответы [ 4 ]

6 голосов
/ 12 января 2010

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

5 голосов
/ 22 сентября 2010

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

self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemMore tag:0];
2 голосов
/ 16 марта 2010

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

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

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

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

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

0 голосов
/ 18 октября 2010

так что нельзя даже сделать 6 приложений панели вкладок вида?

, даже если имя каждого супер короткое

скажем так

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

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

...