У меня есть некоторые статические ячейки, которые я хочу отобразить, поэтому у меня есть UITableViewController. В этой сцене также есть NavigationBar, который содержит несколько кнопок вверху. Установка выглядит следующим образом:UINavigationBar внутри UITableViewController
Если бы я был UIViewController, который содержал UITableView в нем, установка будет выглядеть следующим образом:
Итак, вопрос:
- Почему панель навигации должна быть встроена в UITableView при использовании UITableViewController? (Я пытался поставить его в другом месте, но IB не позволит мне)
- Я знаю, что UITableView является подклассом UIView, но нормально ли, что элемент верхнего уровня в иерархии не является представлением (но TableView)?
Спасибо.
Как правило, вы не хотели бы этого делать. Если вы хотите панель навигации, используйте UINavigationController, даже если вы не собираетесь нажимать дополнительные контроллеры. – Gavin
Если вам не нужна навигация, и вы знаете, что никогда не захотите этого, я не вижу причин не делать этого таким образом. UINavigationController не даст вам ничего, кроме дополнительных причуд, которые входят в стандартную комплектацию с элементами UIKit: P –
В каких чертах вы говорите? Почти всегда лучше использовать UINavigationController для включения UINavigationBar, если вы не планируете выполнять какую-то специальную настройку, которую UINavigationController не разрешает, что не отображается здесь. Кроме того, есть преимущества использования UITableViewController, а не UIViewController со встроенным UITableView, и для этого подхода потребуется использовать UINavigationController для правильного получения UINavigationBar. – Gavin