많은 옵션을 시도했지만 그 중 아무 것도 작동하지 않았습니다. 문제는 간단합니다 :동일한보기 컨트롤러의 인스턴스가 두 개 있습니다. 하나는 TabBarController에서 작동하지 않습니다.
5 개의 탭에 대해 완벽하게 작동하는 하나의 UITabBarController가 있습니다.
내 문제는 첫 번째와 두 번째 탭에 있습니다. 각 탭에서 동일한보기 컨트롤러를 사용해야하지만 물론 두 개의 다른 인스턴스가 필요합니다.
두 개의 다른 네비게이션 컨트롤러를 추가하려고했는데 모두 루트 컨트롤러와 동일한보기 컨트롤러를 가리키고 있습니다. 이 방법으로 각 탐색 컨트롤러에서 탭 텍스트와 아이콘 (이 인터페이스 빌더에서 주로 작업)을 사용자 정의 할 수 있습니다. 첫 번째 탭 작업 (NavController1에 의해 처리 한), 두 번째 (I 절대적으로 표시되는보기 모르겠지만,은, 블랙 비어와 가진보기를 표시하지 않습니다이 구성
__ NavController 1 _
/ \
TabController -- NavController 2 -- ViewController
기본 빈 파란색 탐색 표시 줄). 내비게이션 컨트롤러에서 내보기 컨트롤러로의 링크를 하나만 유지하면 다음과 같습니다.
__ NavController 1
/
TabController -- NavController 2 -- ViewController
두 번째 탭은 완벽하게 작동합니다.
다른 옵션은 NavController를 두 번 연결하는 것입니다. 그러나이 경우 탭 인덱스에 따라 프로그래밍 방식으로 제목과 이미지를 구성해야하며이 작업을 수행 할 위치가 어디인지 확실하지 않습니다.
그래서 :
- 이 정상적인 행동인가?
- IB 솔루션이 있습니까?
- 프로그래밍 방식으로 탭 모양을 설정해야하는 경우 어떻게해야합니까?
감사합니다. 알겠습니다. 즉, 프로그래밍 방식으로 모든 Tabbar를 설정해야합니다. 나는 그것을 할 수있다. 나는 애플이 스토리 보드 에디터에서이 기능을 추가하기 전에 그것을하는 것이 "옛날 방식"이라고 생각한다. 대답을 확인하기 전에 인터페이스 빌더로 솔루션을 얻었는지 확인하기 만하면됩니다. 어쨌든 빠른 답장을 보내 주셔서 감사합니다! –
이 봐,이 이상한입니다 : 당신이 제안대로 프로그래밍 방식으로 탭 표시 줄을 설정할 때 내 TableViewController 내 프로토 타입 셀 ([tableView dequeueReusableCellWithIdentifier : cellId] 호출하여) 더 이상 검색하지 않습니다, 항상 nil 반환합니다. 스토리 보드가 인스턴스를 생성 할 때와 대조적으로 [[... alloc] init]을 통해 컨트롤러를 할당 할 때 다른 뭔가가 있다고 가정합니다. 내가 찾을 수없는 순간, 구체적인 init 메소드가 없습니다. 조사를 계속하고 있지만 팁이 있다면 –
OK 찾았습니다. 해결책은 메인 스토리 보드에서 객체를 인스턴스화하는 것입니다. UIStoryboard * st = [UIStoryboard storyboardWithName : [[NSBundle mainBundle] .infoDictionary objectForKey : @ "UIMainStoryboardFile"] 번들 : [NSBundle mainBundle]]; MasterViewController * placesView = [st instantiateViewControllerWithIdentifier : @ "masterListView"]; –