Как добавить NavigationBar (без NavigationController) и SearchBar в TableView

У меня такое чувство, что это действительно не должно доставлять мне столько проблем, как есть, и что я что-то упускаю, но я просто не могу заставить это работать. Поэтому я хочу панель вкладок, которая переключается между 3 различными таблицами. Все они должны иметь NavigationBar, но не NavigationController (поскольку все это происходит после начального модального сегмента в TabBarController). прекрасным примером того, что мне нужно, являются закладки Apple Maps.

Я пробовал три разных методы, все из которых потерпели неудачу по-разному:

  1. добавьте TableView, затем добавьте NavBar к этому, затем добавьте панель поиска. Панель поиска просто заменяет панель навигации.
  2. добавьте представление, затем добавьте панель навигации. Затем добавьте TableView как subView. Когда я добавляю панель поиска к этому подвиду, она заканчивается под ячейкой прототипа (не пытайтесь запустить это, поскольку мне придется написать новый ViewController для обработки того факта, что TableView теперь является подвидом и не думаю, что это стоило того, учитывая проблемы с макетом).
  3. добавьте представление, затем добавьте панель навигации. затем добавьте ContainerView, который имеет TableViewController. Это просто сбой при запуске. Я не уверен, что ошибка здесь, так как я не очень уверен, где поймать какие-либо исключения...

я реализовал большую часть своего интерфейса В IB до сих пор и хотел бы сохранить его таким образом, насколько это возможно, но я уверен, что должно быть что-то очевидное, я пропал здесь. Я не очень долго программировал iOS, так что полегче со мной, если мне не хватает чего-то фундаментального! Любая помощь будет принята с благодарностью. Даже если это просто говорит, Какой выше подход я должен пойти и продолжать пытаться. Спасибо!

редактировать

Я, вероятно, должен упомянуть, что когда я сказал TableViewController, я имел в виду пользовательский подкласс TableViewController, который использует FetchedResultsController для заполнения ячеек.

2 ответов


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


Если у вас будет модальный сегмент к новому контроллеру вида (или контроллеру панели вкладок с вкладками, указывающими на навигационные контроллеры), и вы хотите, чтобы у этого контроллера вида была панель навигации, тогда вы должны выбрать контроллер вида, который вы хотите представить модально, встроить его в навигационный контроллер (редактор->встроить->навигационный контроллер), а затем модально сегментировать к навигационному контроллеру. Та же концепция применяется для вашего контроллера панели вкладок, за исключением того, что они будут отношениями переходит. image of modal segue with navigation bar