我正在开发一个应用程序,其中viewController嵌入在navigationBar中,此navigationBar嵌入在TabBarViewController中。
在我的应用程序中,我有2个不同的标签(暂时),一个标签是"活动视图"。这是一个带有tableView的viewController,其中列出了活动。每个单元格都会显示相同的视图控制器,显示触摸时的详细活动。
我的问题是没有用按钮显示navigationItem。
我正在尝试使用Bar button item not shown in navigationBar的解决方案,因为我的问题非常相似,但它不起作用。
故事板和应用运行的一些截图: storyboard App running without buttons
我尝试以编程方式添加按钮但没有结果:
var logoutButton: UIBarButtonItem!
var filterButton: UIBarButtonItem!
//MARK: - Lyfe cycle
override func viewDidLoad() {
super.viewDidLoad()
let logoutImage = UIImage(named: "logout-24")
let filterImage = UIImage(named: "filterOutline-24")
logoutButton = UIBarButtonItem(image: logoutImage, style: .Plain, target: self, action: "logoutAction:")
filterButton = UIBarButtonItem(image: filterImage, style: .Plain, target: self, action: "filterAction:")
navigationItem.rightBarButtonItems = [filterButton, logoutButton]
答案 0 :(得分:0)
检查你的形象。我发现您的代码没有任何问题。或者您可以尝试添加如下所示的标题
logoutButton = UIBarButtonItem(title: "Log out", style: .Plain, target: self, action:Selector("logoutAction:"))
filterButton = UIBarButtonItem(title: "Filter", style: .Plain, target: self, action: Selector("filterAction:"))
如果按钮栏显示。我确定问题是你的形象。
答案 1 :(得分:0)
我也遇到了类似的问题,后来我发现在标签栏控制器本身设置导航栏,无需在视图控制器中进行操作
let profilePutton = UIButton(type: .custom)
profilePutton.setTitle("Profile", for: .normal)
profilePutton.frame = CGRect(x: 0.0, y: 0.0, width: 30.0, height: 30.0)
profilePutton.addTarget(self, action: #selector(openProfilePage), for: .touchUpInside)
navigationItem.rightBarButtonItem = UIBarButtonItem(customView: profilePutton)
答案 2 :(得分:0)
对于Tabar应用程序,我们应该这样添加
let logoutButton = UIBarButtonItem(image: UIImage(named: "ic_logout"), style: .plain, target: self, action:#selector(logoutButtonTapped))
self.tabBarController?.navigationItem.leftBarButtonItem = logoutButton
let nightModeButton = UIBarButtonItem(image: UIImage(named: "ic_night_mode_off"), style: .plain, target: self, action:#selector(nightModeButoonTapped))
self.tabBarController?.navigationItem.rightBarButtonItem = nightModeButton