用户切换标签栏项目后导航项目未更新
Navigation items not updated after user switches tab bar item
我有一个带有 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))
}
}
改为使用此代码隐藏 barButtonItems
:
self.navigationItem.setLeftBarButton(nil, animated: true)
self.navigationItem.setRightBarButton(nil, animated: true)
然后重新设置并做任何您想做的事,并确保在您的 viewDidAppear
中设置这些以确保您的视图得到更新
我有一个带有 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))
}
}
改为使用此代码隐藏 barButtonItems
:
self.navigationItem.setLeftBarButton(nil, animated: true)
self.navigationItem.setRightBarButton(nil, animated: true)
然后重新设置并做任何您想做的事,并确保在您的 viewDidAppear
中设置这些以确保您的视图得到更新