2014-01-17 17 views
1

У меня есть приложение, предназначенное для раскадровки. Я пытаюсь добавить панель вкладок в нижней части представления, где у меня есть мой uitableviewcontroller, проблема в том, что она автоматически перетаскивает ее под первую ячейку.Добавление TAB BAR в uitableviewcontroller

Я намереваюсь добавить 4 кнопки на панели вкладок, каждый из которых выполняет определенное действие ВНУТРИ этого представления (каждый из них перезагрузит таблицу различными данными из Интернета).

+0

Похоже, что 'UIToolBar' больше всего подходит вашим потребностям. Панель вкладок предназначена для навигации. Не выполнять действия. – Isuru

+0

Создайте MCVE, чтобы объяснить проблему: http://stackoverflow.com/help/mcve –

ответ

2

Из вашего описания UIToolBar будет лучшим вариантом для вас. Вы поместите его в нижней части своего контроллера просмотра и создайте IBActions для каждой кнопки, которая обновит ваши данные.
Если вы намерены использовать UITabBar, вам необходимо пересмотреть раскладку раскладки. В качестве начального представления у вас будет UITabBarController, который будет иметь подклассу TableViewController в качестве корневого представления. Вы можете либо сделать четыре отдельных подкласса TableViewController (каждый для другого набора данных), либо у вас может быть один подкласс, который получает сообщение загрузки из UITabBarController о том, какой набор данных загружается.
Если вы решите использовать панель инструментов, ее невозможно добавить в нижнюю часть TableViewController Interface Builder. Выполните следующие шаги, чтобы добавить панель инструментов в нижней части TableViewController подкласса:

  1. Вставьте ViewController в раскадровке (это заменит TableViewController)
  2. Установите класс вашего нового ViewController к вашему TableViewController подкласса (Идентичность Inspector)
  3. Вставьте UIToolbar в нижней части нового ViewController и добавьте кнопки, IBOutlets и IBActions, если хотите.
  4. Добавьте TableView в свой ViewController, который занимает остальную часть пространства экрана.
  5. В инспекторе соединений подключите dataSource и делегат вашего TableView к подклассу TableViewController
  6. Добавьте и настройте столько прототипов TableViewCells, сколько необходимо.

Это должно быть все, что необходимо для получения панели инструментов в вашем TableViewController. Это требует дополнительной настройки в Interface Builder, но это единственный способ сделать это без написания дополнительного кода.

+0

Дело в том, что я не думаю, что мне нужен контроллер tabbar, все, что я хочу, - это 4 кнопки в нижней части экрана, каждая из которых подключена к IBAction, который сбросит данные таблицы. Проблема заключается в том, что я добавляю к контроллеру tableview, который он прикрепляет к нижней части первой ячейки. – user3207319

+0

Я добавил шаги, чтобы получить панель инструментов на вашем представлении. Я написал это из памяти, поэтому, возможно, я пропустил шаг. Если бы я сделал, пожалуйста, дайте мне знать, иначе, пожалуйста, отметьте это как правильный ответ. Удачи! – user2105505

+0

Я получаю следующую ошибку: [UITableViewController loadView] загрузил «Yfd-OW-gAN-view-aED-XN-o5u», но не получил UITableView ». – user3207319

2

Выберите контроллер затем меню Editor > Embed In > Tab Bar Controller

EDIT: Hu я не прочитал ваш вопрос полностью. Другие ответы более правильны.

0

Я намерен добавить 4 кнопки на панели вкладок каждая из которых выполняет определенную действие ВНУТРИ этой точки зрения (каждый из них будет перезагрузить таблицу с различных данных из Интернета).

Согласно вашему последнему предложению, я судил о том, что вам не нужна панель вкладок или элемент управления tableview. Вам просто нужно простая Посмотреть контроллер имеющего Tableviewв верхней и панелив нижних. Панель инструментов будет иметь блок управления с 4 разделами, который будет действовать как четыре кнопки. В каждом разделе нажмите, вы можете зафиксировать событие изменения и загрузить новые данные в таблице в соответствии с выбранным индексом.

Это простой способ сделать вещи. Не делайте свою жизнь сложной, используя панель вкладок :)

0

Итак, это то, что я в конце концов сделал. Я получал ошибку в методе, указанном user2105505 (помечается как правильно), поэтому я решил создать UIVIEWCONTROLLER и добавить мой контроллер tableview в качестве дочернего элемента этого uiviwewcontroller (путем импорта класса uitableviewcontroller, создающего isntance класса и создание экземпляра на self.storyboard), затем добавили панель инструментов в uiviewcontroler.

Затем просто добавьте представление tableview в качестве подсмотра представления uiviewcontroller, но вам нужно помнить о двух вещах.

Создайте свою панель инструментов и измените размер табличного представления так, чтобы оно соответствовало, и на панели инструментов отображается (возможно, использовать для использования setToFront как альтернативу, не работает для меня, нужно было указать размер вручную).