如何以编程方式设置导航栏的标题?
我的视图中有一个导航栏,我想以编程方式更改其导航项标题。
这是怎么做到的?
I have a Navigation Bar in a view, and I want to change its Navigation Item title programmatically.
How is this done?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
你也可以使用
You can also use ????????
这段代码对我不起作用
但这有效。
This code did not work for me
But this worked.
在 ViewDidLoad 方法中使用它
格式:
示例:
Use it in ViewDidLoad method
Format :
Example :
非常重要的注意事项:确保在父视图控制器的 viewDidLoad 方法或情节提要中的父导航栏中进行上述更改
very important note : make sure you make the changes that mentioned above in parent view Controller's viewDidLoad method, or parents navigation bar in storyboard
有时您可能会遇到这样的情况:您正在更新标题,但它没有造成任何效果,这可能是当您在
topItem
上有自定义视图时,因此您可能需要像这样更新它:< code>(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "我快乐的新标题"Sometimes you might get a case where you are updating the title and it is not causing any effect, this can be when you have a custom view on the
topItem
therefore you might want to update it like this:(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"
Swift:
目标 c
SwiftUI
Swift:
Objective c
SwiftUI
在你的 UIViewController 中
In your UIViewController
Swift 3 版本:
如果您使用没有导航控制器的导航栏,那么您可以尝试以下操作:
希望得到帮助。
Swift 3 Version:
If you use a navigation bar without navigation controller, then you can try this:
Hope for help.
在 viewDidLoad 中
In viewDidLoad
在
viewDidLoad
中编写以下代码,或者在initWithNibName:
下编写可能更好,谢谢。
Write the below code in
viewDidLoad
or may be better would be underinitWithNibName:
Thanks.
来自 Apple 文档:
因此,如果您有一个 UINavigationController,则需要执行所有操作来设置导航栏的标题(如之前所有答案中所述),
但是如果您有一个在 UIViewController 对象内以编程方式创建的独立导航栏,则必须通过创建适当的 UINavigationItem 对象并将它们添加到导航栏对象堆栈来设置导航栏的初始外观即
上述步骤的 Objective-C 代码示例:
对于独立导航栏的 Swift 版本,请查看 这个答案。
From Apple Documentation:
So If you have a UINavigationController, all what you have to do to set the title of the navigation bar (as explained in all previous answers)
But If you have a standalone navigation bar that is created programmatically within an object of UIViewController, You have to set the initial appearance of the navigation bar by creating the appropriate UINavigationItem objects and adding them to the navigation bar object stack i.e.
Sample of Objective-C Code for the mentioned steps:
For Swift version of the standalone navigation bar, check out this answer.
在 UIViewController 的 viewDidLoad 中
,或者
您可以直接
执行此操作,
您也可以将上述语句放在应用程序委托中以进行全局复制。
In your UIViewController's viewDidLoad
or
you can just
will do the trick
you can also put the above statement in the app delegate to replicate globally.