У меня есть панель навигации с заголовком. Когда я дважды щелкаю текст, чтобы переименовать его, он на самом деле говорит, что это элемент навигации, так что это может быть так.
Я пытаюсь изменить текст с помощью кода, например:
declare navigation bar as navagationbar here
button stuff {
navigationbar.text = "title"
}
Очевидно, это не мой код, я просто показываю, как он будет работать.
Поэтому всякий раз, когда я нажимаю кнопку, я хочу, чтобы название менялось.
ViewController
относится к самому классу. Вам необходимо обратиться к примеру изViewController
. Изнутри метода вашего класса, напримерviewDidLoad
, вы можете сделать это, используяself
. Если вы не знаете разницы между классом и экземпляром, я настоятельно рекомендую вам узнать, что это такое. Эта статья поможет.Попробуйте следующее в
viewDidLoad
self.navigationItem.title = "Your Title"
источник
Приведенный ниже код работает для меня с Xcode 7:
override func viewDidLoad() { super.viewDidLoad() self.navigationItem.title = "Your Title" }
источник
Я обнаружил, что это работает:
navigationItem.title = "Title"
источник
var customTitle = self.navigationController?.visibleViewController?.navigationItem customTitle?.title = "Some Title"
а также, если вы попытаетесь создать
Navigation Bar
вручную, этот код поможет вамfunc setNavBarToTheView() { let navBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 64.0)) self.view.addSubview(navBar); let navItem = UINavigationItem(title: "Camera"); let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.cancel, target: self, action: #selector(CameraViewController.onClickBack)); navItem.leftBarButtonItem = doneItem; navBar.setItems([navItem], animated: true); }
источник
Обычно лучше всего устанавливать заголовок на
UIViewController
. При этомUINavigationItem
также устанавливается. Как правило, это лучше, чем программное выделение и инициализацияUINavigationBar
который ни с чем не связан.Вы упускаете некоторые преимущества и функциональные возможности, для которых он
UINavigationBar
был разработан. Вот ссылка на документацию, которая может вам помочь. В нем обсуждаются различные свойства, которые вы можете установить на фактическом баре и наUINavigationItem
.Только имейте в виду:
UINavigationController
это твои друзья.источник
Правильный ответ для людей, использующих swift4 было бы
override func viewDidLoad() { super.viewDidLoad() self.navigationItem.title = "Your Text" }
источник
Swift 3
Я создал выход для элемента строки заголовка навигации, который поставляется с панелью навигации (из обозревателя объектов) в раскадровке. Затем я подал в суд на следующую строку:
navigationBarTitleItem.title = "Hello Bar"
источник
Если у вас есть
NavigationController
встроенный элемент,TabBarController
см. Ниже:super.tabBarController?.title = "foobar"
Вы можете отлаживать подобные проблемы с помощью сценариев отладчика. Попробуйте команду Chisel,
pvc
чтобы распечатать все видимые / скрытые представления в иерархии.источник
Если вы хотите изменить заголовок из дочернего контроллера представления контроллера представления страницы, встроенного в контроллер навигации, это будет выглядеть так:
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.parent?.title = "some title" }
источник
В Swift 4:
Swift 4
override func viewDidLoad() { super.viewDidLoad() self.title = "Your title" }
Надеюсь, это поможет, привет!
источник
Я предпочитаю использовать
self.navigationItem.title = "Your Title Here"
overself.title = "Your Title Here"
для указания заголовка на панели навигации, поскольку панель вкладок также используетсяself.title
для изменения заголовка. Вам следует попробовать следующий код один раз.Примечание: вызов жизненного цикла суперпредставления необходим перед выполнением каких-либо действий.
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() setupNavBar() } } private func setupNavBar() { self.navigationItem.title = "Your Title Here" }
источник
Swift 5.1
override func viewDidLoad() { super.viewDidLoad() navigationItem.title = "What ever you want" }
источник
Swift 5.1
// Установить название панели навигации программно и динамически
Примечание: сначала добавьте NavigationControllerItem в свой,
ViewController
затем перейдите к ихViewController.swift
файлу и просто скопируйте и вставьте егоviewDidLoad()
.navigationItem.title = "Your Title Here"
источник