Добавление UIButton в UITabBar - PullRequest
1 голос
/ 28 июля 2011

Я пытаюсь добавить UIButton в UITabBar в своем приложении для iPad со следующим кодом:

TabBarAppDelegate *delegate = (TabBarAppDelegate *)[[UIApplication sharedApplication] delegate];
UITabBarController *tabbar = (UITabBarController *)delegate.window.rootViewController;

UIButton *b = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
[tabbar.view addSubview:b];

tabbar в порядке и ссылается на правильный элемент панели вкладок (скажем, я могу переключить активную вкладку следующим кодом: [tabbar setSelectedIndex:1];).

Этот код вызывается другой пользовательской кнопкой. Хотя в журнале ошибок нет, кнопка не отображается на панели вкладок: (

Что я делаю не так и как правильно добавить UIButton в UITabBar? :) Вот пример:

http://gyazo.com/99fc0df0ed47dd6be91b558161cab4f9.png

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

Редактировать: Хорошо, если я буду придерживаться опции UIToolbar, то каков правильный способ переключения между представлениями? Создать NSArray ViewContollers и загрузить соответствующее представление ViewController в активный View?

Ответы [ 3 ]

4 голосов
/ 28 июля 2011

Вы не можете добавить UIButton непосредственно к UITabBarController. Из UITabBarController Ссылка на класс :

Вы никогда не должны получать доступ к представлению панели вкладок контроллера панели вкладок. непосредственно.

Далее документация гласит:

Элементы панели вкладок настраиваются через их соответствующий вид контроллер. Чтобы связать элемент панели вкладок с контроллером представления, создайте новый экземпляр класса UITabBarItem, настройте его соответствующим образом для контроллера вида и назначить его контроллеру вида свойство tabBarItem. Если вы не предоставите пользовательский элемент панели вкладок для ваш контроллер представления, контроллер представления создает элемент по умолчанию не содержит изображения и текста из заголовка контроллера представления свойство.

Поэтому у вас есть два варианта:

  1. Создайте UITabBarItem ( документация ) и добавьте его.
  2. Вместо этого используйте UIToolBar, но не забудьте добавить UIBarButtonItem s.
1 голос
/ 24 декабря 2012

Хотя ОП решил использовать UIToolBar для решения этой проблемы, я подумал, что выложу быстрый ответ, предлагающий другой вариант для любого, кто читает это.По сути, вы можете сделать это, но вам нужно создать подкласс UITabBarController, создать UIButton (s) и добавить их в подкласс.Во всяком случае, вот несколько ссылок, которые предоставляют подробности.

Здесь и Здесь

0 голосов
/ 23 ноября 2015

На всякий случай, если кто-то споткнется по этому старому вопросу: вы, вероятно, захотите взглянуть на соответствующих делегатов UITabBar и UITabBarController (UITabBarDelegate и UITabBarControllerDelegate).

...