Как мне добавить UIView над TableViewController - PullRequest
4 голосов
/ 15 февраля 2010

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

Моя настройка:
Контроллер панели вкладок
MyCustomTableViewController
View
TableView (для настройки высоты ячейки)
Searchbar

Я разместил панель поиска в верхней части «окна» и опустил представление таблицы так, чтобы оно располагалось непосредственно под панелью поиска.
Так что в IB все выглядит отлично.
Но когда я запускаю приложение, просмотр таблицы занимает весь экран, а панель поиска нигде не обнаруживается.

Я довольно новичок в разработке для iPhone, поэтому может быть очень простое решение (?).
/ Jimmy

Ответы [ 2 ]

4 голосов
/ 15 февраля 2010

Действительно простое решение:

  • Создайте пользовательский подкласс UIViewController, который реализует UITableViewDelegate и UITableViewDataSource точно так же, как UITableViewController. Также добавьте UITableView выход.
  • В файле XIB поместите панель поиска и UITableView в представление контроллера представления.
  • Подключите табличное представление к tableView розетке в своем пользовательском UIViewController
  • Подключите делегат и источник данных UITableView к Владельцу файла (ваш пользовательский UIViewController, который реализует правильных делегатов)

Теперь у вас есть пользовательский контроллер представления, который работает так же, как UITableViewController, за исключением того, что вы полностью контролируете его макет. Вы реализуете делегатов таким же образом.

1 голос
/ 15 февраля 2010

Если вы MyCustomTableViewController на самом деле UITableViewController, то в IB вы заметите, что выход «view» указывает прямо на ваш UITableView вместо корневого UIView в IB. Это поведение по умолчанию для объектов UITableViewController. Просто перенаправьте выход «view» в корневой UIView, и все должно отображаться правильно.

...