저는 Tweetie 앱 에서와 같이 작동 하는 UI 구조를 구현하려고합니다 . 최상위 뷰 컨트롤러는 루트 뷰가 "계정"테이블 뷰인 탐색 컨트롤러 인 것 같습니다. 계정을 클릭하면 하단에 탭 바가있는 두 번째 레벨로 이동합니다. 각 탭 항목은 다른 목록을 표시하며 추가로 드릴 다운 할 수 있습니다 (이후 레벨에는 탭 표시 줄이 표시되지 않음).
따라서 이것은 구현 계층 구조가 다음과 같습니다.
UINavigationController
- 계정 :
UITableViewController
UITabBarController
- 트윗 :
UITableViewController
- 트윗 / 사용자 / 등의 상세보기
- 답글 :
UITableViewController
- ...
- 트윗 :
- 계정 :
이것은 작동하는 것처럼 보이지만 [^ 1]에 대한 SDK 문서에 따르면 지원되지 않는 것 같습니다 -pushViewController:animated:
(강조 추가됨).
viewController : 스택에 푸시되는 뷰 컨트롤러입니다. 탭 막대 컨트롤러의 인스턴스가 될 수 없습니다.
비공개 API 등을 피하고 싶지만 제대로 작동하는 것처럼 보이지만이 사용이 명시 적으로 금지 된 이유가 무엇인지 잘 모르겠습니다. 이유를 아는 사람 있나요?
탭 모음 컨트롤러를 기본 컨트롤러로 설정하고 각 탭에는 별도의 탐색 컨트롤러가 포함되어 있습니다. 문제는 각 탐색 컨트롤러가 단일 루트 뷰 컨트롤러 (즉, Tweetie 의 "Accounts"테이블 ) 를 공유해야한다는 것입니다. 작동하지 않는 것 같습니다. 테이블 컨트롤러를 두 번째 탐색 컨트롤러로 푸시하면 제거되는 것 같습니다. 처음부터. 다른 계정을 선택할 때 모든 부기 관리는 말할 것도없고 아마도 고통 스러울 것입니다.
이를 올바른 방법으로 구현하려면 어떻게해야합니까?
[^ 1] : 탭 모음 컨트롤러는 해당 수준에있는 탭 모음 컨트롤러의 탐색 항목이 선택한 탭의 탐색 항목과 동기화 상태를 유지하도록 하위 클래스 화되어야하며 개별 탭의 테이블 컨트롤러는 self.tabBarController.navigationController
대신 해당 세부보기를 푸시해야합니다. self.navigationController
.