2010-02-15 2 views
4

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

Моя установка:
Панель вкладок контроллер
        MyCustomTableViewController
                Посмотреть
                        TableView (для настройки высоты ячейки)
                        SearchBar

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

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

ответ

4

Действительно простое решение заключается в следующем:

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

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

+0

Работал как шарм =). (уточнить: «в XIB-файле» вы помещаете свой пользовательский UIView, а не пользовательский UIBiew XIB, как я думал вначале) спасибо –

1

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

+0

MyCustomTableViewController - это класс, запущенный из UITableViewController, поскольку я хочу, чтобы tableview содержал пользовательские ячейки. Кажется, что на моем MyCustomTableViewController отсутствует идея «Просмотр», любая идея о том, почему и как ее вернуть? –

+0

Uh no.'UITableViewController' ожидает, что представление укажет на' UITableView', и оно полностью завершится, если вы измените его, чтобы указать на другой вид. –

+0

Конечно. Я забыл, что я обычно изменяю суперкласс UITableViewController и UIViewController. Таким образом, мне не нужно писать в методах делегата/источника данных таблицы. –