用户切换标签栏项目后导航项目未更新

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 中设置这些以确保您的视图得到更新