以编程方式添加UIBarButtonItem
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以编程方式添加UIBarButtonItem相关的知识,希望对你有一定的参考价值。
我正在尝试以编程方式添加UIBarButtonItem。
let navigation = UINavigationController()
let rightBarButton = UIBarButtonItem(title: "LogIn", style: .plain, target: self, action: #selector(logInPressed))
navigation.navigationItem.rightBarButtonItem = rightBarButton
并且还为测试提供了选择器功能。
@objc func logInPressed() {
print("go to login")
}
遗憾的是,此按钮不起作用-在模拟器的导航栏上看不到工具栏按钮。
经过断点检查,rightBarButtonItem存在。
可能是由应用协调器而不是子VC创建条形按钮引起的。
[请任何人帮助解决此问题?Simulator screenshot
答案
该问题不是由子VC创建的,而是由协调器创建的。
Bar按钮存储在navigationItem
的UIViewController
属性中。
另一答案
您正在将UIBarButtonItem添加到NavigationController的新实例。因此它不会出现在那里。
因此在您的视图控制器中,您想使用以下方法之一处理右导航栏:override func viewDidLoad()
要么override func viewWillAppear
添加:
let rightBarButton = UIBarButtonItem(title: "LogIn", style: .plain, target: self, action: #selector(logInPressed))
self.navigationController?.navigationItem.setRightBarButton(rightBarButton, animated: true)
以上是关于以编程方式添加UIBarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式将 UIBarButtonItem 添加到拖到视图上的 UINavigationBar
以编程方式在Swift中添加UIBarButtonItem操作
以编程方式添加到导航栏的UIBarButtonItem无法调用选择器,而添加到工具栏的按钮确实如此