我有一个带有4个子视图控制器的标签栏控制器。每次用户切换标签栏时,右上角的导航项都应该更改。除了一个场景(用户从第三个选项卡开始)之外,它们确实会发生变化。
我必须承认我正在更改标签栏控制器导航栏的导航项。我没有使用四种不同的导航控制器+视图控制器。
// called in viewWillAppear
internal func setupNavigationBar() {
title = "Meeting"
if let tabBarVC = parent as? ProjectTabBarController {
tabBarVC.navigationItem.leftBarButtonItems = nil
tabBarVC.navigationItem.rightBarButtonItems = nil
tabBarVC.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(didTapCreateMeeting))
}
}
答案 0 :(得分:2)
使用此代码隐藏barButtonItems
代替:
self.navigationItem.setLeftBarButton(nil, animated: true)
self.navigationItem.setRightBarButton(nil, animated: true)
然后重新设置并执行您想做的任何操作,并确保在viewDidAppear
中设置这些内容以确保您的视图已更新