Я согласен, что сложно понять, как делать такие вещи в Интерфейсном Разработчике, но, к счастью, возможно добавить панель навигации и элемент панели кнопок в представление таблицы таким образом.Вот как это сделать:
- Перетащите пустой вид (экземпляр UIView) из библиотеки в область в верхней части представления таблицы.При перетаскивании рядом с целевой областью Интерфейсный Разработчик будет выделять ее синим цветом, чтобы показать вам, куда можно поместить вид.Отпустите, и представление будет добавлено как подпредставление представления заголовка табличного представления.
- Перетащите панель навигации из библиотеки и поместите ее в пустое представление, которое вы только что добавили.
- ПеретащитеЭлемент панели кнопок из библиотеки и перетащите его на панель навигации.
РЕДАКТИРОВАТЬ
Проблема с вышеуказанным подходом заключается в том, что, как указывает Богатырьпанель навигации будет затем прокручиваться вместе с табличным представлением.Apple рекомендует использовать пользовательский подкласс UIViewController
, который владеет как панелью навигации, так и экземпляром UITableView
, размер которого соответствует размеру.К сожалению, это означает, что вам придется реализовать поведение UITableViewController
, необходимое для вашего подкласса UIViewController
.
Другой подход, который, кажется, работает хорошо, - это создать собственный подкласс UIViewController
, которому принадлежит пробел.фоновое представление, содержащее панель навигации, а также пустое представление содержимого (экземпляр UIView
), которое помещается под панелью навигации.У вашего пользовательского подкласса будет выход, указывающий на экземпляр UITableViewController
в том же файле пера.
Это имеет то преимущество, что позволяет создавать и настраивать все компоненты представления в Interface Builder, и нетребуют реализации UITableViewController
методов с нуля.Единственная деталь, о которой вам нужно позаботиться в родительском контроллере табличного представления, - это добавить табличное представление как подпредставление родительского представления содержимого в viewDidLoad
.
Родитель может реализовать методы действия дляэлементы кнопок панели навигации и, при необходимости, реализуйте шаблон делегата.