Как установить название навигационной панели в Swift? [дубликат]
этот вопрос уже есть ответ здесь:
я пытаюсь установить заголовок Navigation Bar в Swift, я поставил Tab Bar и Navigation Bar ничего не отображается, нет кнопки, нет заголовка, ничего. Я использовал код, но это не работает, пока я использую Tab Bar, и когда я удалить Tab Bar, код работает и все ок с Navigation Bar, отображается заголовок и отображаются кнопки.
код, который я использовал для заголовка:
override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.title = "My Title"
}
и Main.storyboard я подключил Navigation Controller С Tab Bar Controller, как на фото.
Итак, как это исправить ? Проблема в том, что Navigation Bar не работает при использовании Tab Bar.
3 ответов
С Tab Bar на самом деле Root View Controller на Navigation Bar, вам необходимо установить UITabBarController ' s title вместо viewWillAppear функция так, что это происходит каждый раз, когда вы переключаете вкладки:
override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.tabBarController?.navigationItem.title = "My Title"
    self.tabBarController?.navigationItem.leftBarButtonItem = settingsButton //This is the IBOutlet variable that you previously added
}
но лучший способ сделать это на самом деле было бы иметь его наоборот, как так
вы должны подключить UINavigationController для каждого ребенка UITabBarController, как правильнее семантически, так и проще поддерживать.
Ваш вопрос неясен, если код, который вы представили с UIViewController что хранится внутри UINavigationController и navigationBar отображается, вы можете просто использовать:
override func viewDidLoad() {
    super.viewDidLoad()
    self.title = "My Title"
}
на Ссылка На Класс UINavigationController Apple написал это:
init (rootViewController: UIViewController)
Параметры rootViewController
Контроллер вида, расположенный в нижней части стека навигации. Этот объект не может быть экземпляром класса UITabBarController.
но вы можете сделать это, если вы настаиваете.Но в этом случае ваши ViewControllers tabbarController все разделяли одно и то же название, которое является названием tabbarController.
лучший способ сделать это-дать каждому из ViewController tabbarController NavigationViewController.
 
            
