以编程方式更改导航标题
我有一个标题的导航栏。 当我双击文本重命名它,它实际上说它是一个导航项目,所以它可能是。
我正在尝试使用代码更改文本,如:
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
要好。
你错过了一些UINavigationBar
devise的好处和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" }