2017-10-18 7 views
1

私は4つの子ビューコントローラを持つタブバーコントローラを持っています。ユーザーがタブバーを切り替えるたびに、右上のナビゲーションアイテムが変更されるはずです。これらは1つのシナリオ(3番目のタブからのユーザー)を除いて変更されます。ユーザがタブバーの項目を切り替えた後にナビゲーションアイテムが更新されない

enter image description here

私はタブバーコントローラのナビゲーションバーのナビゲーション項目を変更していますことを認めなければなりません。私は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)) 
    } 
} 

答えて

2

利用代わりbarButtonItemsを非表示にするには、このコード:

self.navigationItem.setLeftBarButton(nil, animated: true) 
self.navigationItem.setRightBarButton(nil, animated: true) 

が次に再設定し、you'dは必ずあなたのことを確認するために行うと、あなたのviewDidAppearでこれらを設定することを確認したいものは何でも表示が更新されました

+0

変更が加えられていないようです。私はこのコードを私のビューコントローラのスーパークラス(viewWillAppearメソッド)に入れました。 'self.tabBarController.navigationItem'でも試してみました – Cesare

+0

あなたのビューが更新されていることを確認するためにあなたの' viewDidAppear'を代わりに使用してください@Cesare –

+0

あなたの最後のコメントであなたの答えを更新することができます。@Rashwan – Cesare

関連する問題