Настройка заголовка UINavigationBar не работает

#swift #uikit #uinavigationbar #uinavigationitem

#swift #uikit #панель uinavigationbar #элемент uinavigationitem

Вопрос:

Я просмотрел несколько онлайн-руководств, но ничего не работает.

Это код моего ViewController:

 import UIKit

class ViewController: UINavigationController {

    let textView = UITextView()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        // tried this
        self.navigationItem.title = "AAA"

        // and this
        self.title = "AAA"

        // and finally this
        self.parent?.title = "AAA"
    }
}
  

Я не понимаю, почему это не работает (я раньше не использовал панель навигации)

Я ничего не менял в main.storyboard.

Спасибо за ваши ответы.

Комментарии:

1. Вы уверены, что ваш ViewController встроен в NavigationController? и вашим классом контроллера представления будет класс ViewController: UIViewController { }

2. Как мне тогда добавить панель навигации. Если я использую «class ViewController: UIViewController {} «, я не могу использовать «self.NavigationBar ….»

Ответ №1:

Прежде всего, в вашей раскадровке выберите свой контроллер представления, а затем

Редактор -> Встроить -> Навигационный контроллер

затем в вашем ViewController классе добавьте

 self.title = "AAA"
  

в вашем viewDidLoad методе и вашем коде будет выглядеть так:

 class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.title = "AAA"
    }
}
  

Вам нужно заменить UINavigationController на UIViewController

Ответ №2:

Выберите ViewController из раскадровки.

Перейдите в редактор и вставьте с помощью контроллера навигации

введите описание изображения здесь

1) Выберите элемент навигации и установите заголовок из раскадровки.

введите описание изображения здесь

2) Программно

 class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.title = "Your Title"
    }
}