Вы почти никогда не хотите добавлять UINavigationBar
непосредственно в view
контроллера представления, скорее вы хотите встроить свой контроллер представления в UINavigationController
.Если вы используете раскадровки, вы можете сделать это, выбрав контроллер представления, щелкнув меню «Редактор» -> «Встроить» -> «Контроллер навигации».
Если вы не используете раскадровки, вы можете создать контроллер представления и установить его в качестве корневого контроллера представления для UINavigationController
.Затем представьте навигационный контроллер или вставьте этот навигационный контроллер в контроллер вкладок или сплит-контроллер.
let mySpecialViewController = MySpecialViewController()
let navigationController = UINavigationController(rootViewController: mySpecialViewController)
present(navigationController, animated: true)
Этот код выше необходимо вызывать из подкласса UIViewController
.
Если вы делаете это от своего делегата приложения для настройки начального контроллера представления вашего приложения, вы можете сделать это так:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let mySpecialViewController = MySpecialViewController()
let navigationController = UINavigationController(rootViewController: mySpecialViewController)
window?.rootViewController = navigationController
window?.makeKeyAndVisible()
return true
}