以编程方式添加 UIBarButtonItem
Adding a UIBarButtonItem programmatically
我正在尝试以编程方式添加 UIBarButtonItem。
let navigation = UINavigationController()
let rightBarButton = UIBarButtonItem(title: "LogIn", style: .plain, target: self, action: #selector(logInPressed))
navigation.navigationItem.rightBarButtonItem = rightBarButton
并且还做了一个selector函数来测试。
@objc func logInPressed() {
print("go to login")
}
不幸的是,这不起作用 - 栏按钮在模拟器的导航栏上不可见。
断点检测,rightBarButtonItem存在
问题可能是由应用程序协调器而不是子 VC 创建栏按钮引起的。
谁能帮忙解决这个问题?
Simulator screenshot
问题是由于创建条形按钮不是来自子 VC,而是来自协调器。
条形按钮存储在 UIViewController
的 navigationItem
属性 中。
您正在将 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。
let navigation = UINavigationController()
let rightBarButton = UIBarButtonItem(title: "LogIn", style: .plain, target: self, action: #selector(logInPressed))
navigation.navigationItem.rightBarButtonItem = rightBarButton
并且还做了一个selector函数来测试。
@objc func logInPressed() {
print("go to login")
}
不幸的是,这不起作用 - 栏按钮在模拟器的导航栏上不可见。
断点检测,rightBarButtonItem存在
问题可能是由应用程序协调器而不是子 VC 创建栏按钮引起的。
谁能帮忙解决这个问题? Simulator screenshot
问题是由于创建条形按钮不是来自子 VC,而是来自协调器。
条形按钮存储在 UIViewController
的 navigationItem
属性 中。
您正在将 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)