2017-10-18 11 views
1

4 개의 하위보기 컨트롤러가있는 탭 막대 컨트롤러가 있습니다. 사용자가 탭 막대를 바꿀 때마다 오른쪽 상단의 탐색 항목이 변경됩니다. 하나의 시나리오 (세 번째 탭에서 사용자 이동)를 제외하고는 변경됩니다.사용자가 탭 막대 항목을 전환 한 후에 탐색 항목이 업데이트되지 않습니다.

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) 

그런-다시 설정 및 수행하고 있는지 확인하기 위해 viewDidAppear에서이 설정되어 있는지 확인하기 위해 같은 어떤 you'd을 당신의 보기가 업데이트되었습니다.

+0

변경하지 않는 것 같습니다. 내보기 컨트롤러 슈퍼 클래스 (viewWillAppear 메서드)이이 코드를 넣습니다. 또한'self.tabBarController.navigationItem'을 시도했습니다. – Cesare

+0

대신에 viewDidAppear를 사용하여 뷰가 업데이트되었는지 확인하십시오 @Cesare –

+0

마지막 코멘트로 답변을 업데이트 할 수 있다면 @Rashwan – Cesare