当 leftBarButtonItem 工作正常时,RightBarButtonItem 未显示
RightBarButtonItem not showing up, when leftBarButtonItem works fine
在我的应用程序中,我有一个从 HomeViewController
到 EditProfileViewController
的推送 segue,它应该有一个后退按钮作为 leftBarItem
和一个设置齿轮作为 rightBarItem
。后退按钮正常显示,但缺少正确的项目。这些 ViewControllers
直播发生在有导航栏的 MainNavigationController
中。
我尝试在 EditProfileVC
的 ViewDidLoad
中定义 rightBarButton
,我还尝试在视图控制器的故事板中定义 rightBarItem
。
let buttonItem = UIBarButtonItem(image: settingsIcon, style: .plain, target: self, action: #selector(settingsPressed))
buttonItem.tintColor = UIColor(.settingsIconTint)
navigationItem.rightBarButtonItem = buttonItem
有趣的是,如果我将 rightBar 更改为 leftBar 项目,后退按钮将替换为设置齿轮并按我预期的方式工作,但我无法返回主页。
let buttonItem = UIBarButtonItem(image: settingsIcon, style: .plain, target: self, action: #selector(settingsPressed))
buttonItem.tintColor = UIColor(.settingsIconTint)
navigationItem.leftBarButtonItem = buttonItem
要在navigationBar
中设置rightBarButtonItem
,
class HomeViewController: UIViewController {
@IBAction func openEditVC(_ sender: UIButton) {
if let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "EditProfileViewController") as? EditProfileViewController {
self.navigationController?.pushViewController(controller, animated: true)
}
}
}
class EditProfileViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let buttonItem = UIBarButtonItem(title: "Settings", style: .plain, target: self, action: #selector(settingsPressed))
buttonItem.tintColor = .red
navigationItem.rightBarButtonItem = buttonItem
}
@objc func settingsPressed() {
print("Setting Pressed")
}
}
在上面的代码中,我添加了 UIBarButtonItem
和 title
Settings
作为 navigationBar
的 rightBarButtonItem
。
无需配置 leftBarButtonItem
不需要。默认添加Back button
。
截图:
如果它不能满足您的要求,请添加预期内容的屏幕截图,以便我提供帮助。
在我的应用程序中,我有一个从 HomeViewController
到 EditProfileViewController
的推送 segue,它应该有一个后退按钮作为 leftBarItem
和一个设置齿轮作为 rightBarItem
。后退按钮正常显示,但缺少正确的项目。这些 ViewControllers
直播发生在有导航栏的 MainNavigationController
中。
我尝试在 EditProfileVC
的 ViewDidLoad
中定义 rightBarButton
,我还尝试在视图控制器的故事板中定义 rightBarItem
。
let buttonItem = UIBarButtonItem(image: settingsIcon, style: .plain, target: self, action: #selector(settingsPressed))
buttonItem.tintColor = UIColor(.settingsIconTint)
navigationItem.rightBarButtonItem = buttonItem
有趣的是,如果我将 rightBar 更改为 leftBar 项目,后退按钮将替换为设置齿轮并按我预期的方式工作,但我无法返回主页。
let buttonItem = UIBarButtonItem(image: settingsIcon, style: .plain, target: self, action: #selector(settingsPressed))
buttonItem.tintColor = UIColor(.settingsIconTint)
navigationItem.leftBarButtonItem = buttonItem
要在navigationBar
中设置rightBarButtonItem
,
class HomeViewController: UIViewController {
@IBAction func openEditVC(_ sender: UIButton) {
if let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "EditProfileViewController") as? EditProfileViewController {
self.navigationController?.pushViewController(controller, animated: true)
}
}
}
class EditProfileViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let buttonItem = UIBarButtonItem(title: "Settings", style: .plain, target: self, action: #selector(settingsPressed))
buttonItem.tintColor = .red
navigationItem.rightBarButtonItem = buttonItem
}
@objc func settingsPressed() {
print("Setting Pressed")
}
}
在上面的代码中,我添加了 UIBarButtonItem
和 title
Settings
作为 navigationBar
的 rightBarButtonItem
。
无需配置 leftBarButtonItem
不需要。默认添加Back button
。
截图:
如果它不能满足您的要求,请添加预期内容的屏幕截图,以便我提供帮助。