以编程方式更改导航标题
我有一个标题的导航栏。 当我双击文本重命名它,它实际上说它是一个导航项目,所以它可能是。
我正在尝试使用代码更改文本,如:
declare navigation bar as navagationbar here button stuff { navigationbar.text = "title" } 这不是我的代码显然,只是显示它将如何工作。
所以每当我按下button,我想标题改变。
您可以通过更改显示的视图控制器的标题来更改标题 :
 viewController.title = "some title" 
通常这是在视图控制器上加载视图完成的:
 override func viewDidLoad() { super.viewDidLoad() self.title = "some title" } 
但是,这只有在您的视图控制器embedded到UINavigationController中时才有效。 我强烈build议你这样做,而不是自己创build一个导航栏。 如果您坚持自己创build导航栏,则可以通过执行以下操作更改标题:
 navigationBar.topItem.title = "some title" 
尝试在viewDidLoad下面
  self.navigationItem.title = "YourTitle" 
下面的Xcode 7适合我:
 override func viewDidLoad() { super.viewDidLoad() self.navigationItem.title = "Your Title" } 
 通常,最好的做法是在UIViewController上设置标题。 通过这样做, UINavigationItem也被设置。 通常,这比编程分配和初始化一个没有链接到任何东西的UINavigationBar要好。 
 你错过了一些UINavigationBardevise的好处和function。  这是一个链接到文件,可以帮助你。 它讨论了您可以在实际栏和UINavigationItem上设置的不同属性。 
请记住:
- 你失去了button的function(除非你自己连线)
- 内置的“从左侧拖动到后退”手势被取消
  UINavigationController是你的朋友。 
我发现这个工作:
 navigationItem.title = "Title" 
 并且如果您尝试手动创buildNavigation 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); } 
Swift 3
我为故事板中的导航栏(来自对象浏览器)附带的导航标题栏项目创build了一个出口。 然后我起诉了下面这行:
 navigationBarTitleItem.title = "Hello Bar" 
使用swift4的人的正确答案是
 override func viewDidLoad() { super.viewDidLoad() self.navigationItem.title = "Your Text" }