我有一个带标题的导航栏。 当我双击文本来重命名它时,它实际上说它是一个导航项,所以可能就是这样。
我正在尝试使用代码更改文本,例如:
declare navigation bar as navagationbar here
button stuff {
navigationbar.text = "title"
}
这显然不是我的代码,只是展示它是如何工作的。
所以每当我按下按钮,我都想要改变标题。
答案 0 :(得分:442)
您可以通过更改正在显示的视图控制器的title来更改标题:
viewController.title = "some title"
通常这是在视图中完成加载视图控制器:
override func viewDidLoad() {
super.viewDidLoad()
self.title = "some title"
}
但是,这仅在您将视图控制器嵌入UINavigationController中时才有效。我高度建议您这样做,而不是自己创建导航栏。如果您坚持自己创建导航栏,可以通过执行以下操作来更改标题:
navigationBar.topItem.title = "some title"
答案 1 :(得分:54)
在viewDidLoad
self.navigationItem.title = "Your Title"
答案 2 :(得分:12)
以下代码适用于Xcode 7:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = "Your Title"
}
答案 3 :(得分:10)
我发现这个有用:
navigationItem.title = "Title"
答案 4 :(得分:5)
如果您尝试手动创建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);
}
,此代码也可以帮助您
titlefont=dict(
color='rgb(148, 103, 189)'
),
tickfont=dict(
color='rgb(148, 103, 189)'
答案 5 :(得分:4)
通常情况下,最佳做法是在UIViewController
上设置标题。通过这样做,UINavigationItem
也被设置。通常,这比以编程方式分配和初始化与任何内容无关的UINavigationBar
更好。
您错过了UINavigationBar
为其设计的一些优势和功能。 Here is a link可能对您有帮助的文档。它讨论了您可以在实际条形图和UINavigationItem
上设置的不同属性。
请记住:
UINavigationController
是你的朋友。
答案 6 :(得分:3)
Swift 3
我为故事板中导航栏(来自对象浏览器)附带的导航标题栏项创建了一个插座。然后我起诉了以下一行:
navigationBarTitleItem.title = "Hello Bar"
答案 7 :(得分:3)
使用swift4的人的正确答案是
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = "Your Text"
}
答案 8 :(得分:0)
如果MAX(inserted_at)
中嵌入了NavigationController
,请参见下文:
TabBarController
您可以使用调试器脚本调试此类问题。尝试使用Chisel's super.tabBarController?.title = "foobar"
命令来打印层次结构上的每个可见/隐藏视图。
答案 9 :(得分:0)
相对于self.navigationItem.title = "Your Title Here"
,我更喜欢使用self.title = "Your Title Here"
在导航栏中提供标题,因为标签栏也使用self.title
来更改其标题。您应该一次尝试以下代码。
注意:在执行任何操作之前,必须调用超级视图生命周期。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupNavBar()
}
}
private func setupNavBar() {
self.navigationItem.title = "Your Title Here"
}
答案 10 :(得分:0)
如果您想从嵌入在导航控制器中的Page View Controller的子视图控制器更改标题,则如下所示:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.parent?.title = "some title"
}
答案 11 :(得分:0)
Swift 5.1
ng.probe
答案 12 :(得分:0)
Swift 5.1
//以编程方式和动态方式设置NavigationBar标题
注意:
首先将NavigationControllerItem添加到您的 render() {
if (this.props.isLoading) {
return <LoaderExampleText />;
}
const laLoca1 = Drylocationlast.findOne({ codigo: "dl" });
const laLoca = Locaciones.findOne(laLoca1.dryLocationId);
return (<MyMap laLoca={laLoca} />);
}
}
export default withTracker(() => {
const handles = [
Meteor.subscribe("wells"),
Meteor.subscribe("locaciones"),
Meteor.subscribe("Drylocationlast")
];
const isLoading = handles.some(handle => !handle.ready());
return {
wells: Wells.find().fetch(),
isLoading: isLoading
};
})(WellHome);
中,然后转到其ViewController
文件,然后将其复制并粘贴到ViewController.swift
中。
viewDidLoad()
答案 13 :(得分:-1)
在Swift 4中:
快捷键4
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Your title"
}
希望对您有帮助!
答案 14 :(得分:-1)
如果您尚未在视图控制器中创建导航栏,这将起作用。
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Title"
}
如果您在视图控制器中创建了导航栏,这将很有帮助。
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Title"
}