2009-11-05 5 views
0

5 개 탭이있는 앱을 만들고 있는데, 각 탭에는 테이블 + 항목 세부 정보보기가 있습니다.Cocoa-Touch : 여러 탭이있는 UITabBarController를 UINavigationController로 사용합니다.

그래서 UITabBarController을 작성해야하며 직접보기가 아닌 항목은 기본보기가 내부에있는 UINavigationController입니다. ..

내가이 짓을했는지, 그리고 그것을 작동하지만,

이 낭비 아닌가? UITabBarController이하는 일을 살펴보면 탭 컨트롤러에 네비게이션 컨트롤러와 버튼 세트를 만들어 푸시하고 팝하는 것입니다.

UITabBarController의 탐색 컨트롤러를 5 개의 새 컨트롤러를 만드는 대신 사용할 수 있습니까?

답변

3

아니요, 낭비가 아닙니다. 각 탭은 별도의보기 스택이므로 다른 탐색 컨트롤러가 필요합니다. 네비게이션 컨트롤러에는 4 개 또는 5 개가 아닌 하나의 루트 개체 만있을 수 있습니다.

탭을 전환하면 탐색 한 위치로 돌아갑니다. 탭을 두 번 누르면 탐색 컨트롤러가 스택의 맨 위로 이동합니다. 모든 탭에서 하나의 내비게이션 컨트롤러 만 사용한 경우에는 탐색 막대의 특정 사용자 지정과 마찬가지로 탭이 끊어집니다.

네비게이션 컨트롤러와는 달리 자체적으로보기가 어렵습니다. 그것은 뷰 콘트롤러 객체에 의해 취해진 공간 일 뿐이며, 전혀 그렇지 않다. ...

1

UITabBarController는 하위 탭을 UIViewController의 배열로 나타내며 배열은 UINavigationController입니다. 따라서 사용자의 접근 방식이 정확합니다. 주어진 탭 내에서 탐색을 수행하려면 표준보기 컨트롤러 대신 UINavigationController (서브 클래스는 UIViewController)을 사용하십시오.

+0

방금 ​​말했던 것에 동의하지만, 'UITabBarController'는 여전히 뷰 전환을 수행하는데, 이것은 정확히'UINavigationController' 'animated : NO'를 사용하여 뷰를 푸시 할 때 내비게이션 컨트롤러가있는 것 같습니다. – Prody

+0

UITabBarControllers와 UINavigationController 모두 뷰 전환을 수행하는 것이 옳습니다. 이 "관리 뷰"개념은 공통 상위 클래스 UIViewController에서 상속됩니다. UINavigationController 및 UITabBarController는 형제로 생각해야합니다. 나는 그들이 서로에게 의존하지 않고 서로 다른 방식으로 하위 뷰를 관리한다고 생각한다. – awolf

관련 문제