我有一个带标题的导航栏。 当我双击文本以重命名时,它实际上说它是一个导航项,所以可能是那个。
我正在尝试使用代码更改文本,例如:
declare navigation bar as navagationbar here
button stuff {
navigationbar.text = "title"
}
显然那不是我的代码,只是展示它如何工作。
所以无论何时我按下按钮,我都希望标题改变。
我有一个带标题的导航栏。 当我双击文本以重命名时,它实际上说它是一个导航项,所以可能是那个。
我正在尝试使用代码更改文本,例如:
declare navigation bar as navagationbar here
button stuff {
navigationbar.text = "title"
}
显然那不是我的代码,只是展示它如何工作。
所以无论何时我按下按钮,我都希望标题改变。
viewController.title = "some title"
通常这是在视图控制器的viewDidLoad方法中完成:
override func viewDidLoad() {
super.viewDidLoad()
self.title = "some title"
}
但是,这仅适用于您的视图控制器嵌入了UINavigationController中。我强烈建议您这样做,而不是自己创建导航栏。如果您坚持要自己创建导航栏,可以通过执行以下操作更改标题:
navigationBar.topItem.title = "some title"
请在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 = "一些标题"
- bibscySwift 5.1
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "What ever you want"
}
TabBarController
内嵌了一个NavigationController
,请参见下面的内容:super.tabBarController?.title = "foobar"
你可以使用调试器脚本来调试此类问题。尝试使用Chisel的pvc
命令打印层次结构中的每个可见/隐藏视图。对于使用swift4的人来说,正确答案是
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = "Your Text"
}
如果你想手动创建导航栏,以下代码可以帮助你:
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
是您的朋友。override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.parent?.title = "some title"
}
self.title = "some title"
将同时更改导航栏标题和选项卡项目标题。 - RemyDCF