2012-02-21 5 views
0

구성되어 있는지 여부에 관계없이 모든 뷰 컨트롤러를 tabbar 컨트롤러에서 완벽하게 제거하고 런타임에 tababr 컨트롤러에 새로운보기 컨트롤러 을 추가하고 싶습니까? folowing으로했는데, 출력을 내고 있지 않습니까? 주어진 예에서 selfUITabBarController는 인스턴스가 직접 tabbar을 조작하려고 다음이라고 가정모든 뷰 컨트롤러를 tabbar 컨트롤러에서 완전히 제거

UIViewController *thisIsTheViewControllerIWantToSetNow; 
int indexForViewControllerYouWantToReplace; 
NSMutableArray *tabbarViewControllers = [self. tabController.viewControllers mutableCopy]; 
    [tabbarViewControllers removeAllObjects]; 



self.tabController.viewControllers = [NSArray arrayWithObjects:self.moreNavController, self.logInNavController, nil];; 
+0

는 여기서의'tabbar' 속성을 정의하고, 어떤 값은'tabbar' 속성은 위의 코드가 실행될 때 포함되어 있습니까? – Jonah

+0

편집 된 코드를 참조하십시오 – nameless

답변

0

적절하지 않다. 대신 viewControllers 속성을 설정하십시오.

한 tabBar이 컨트롤러와 연결된 탭 막대보기 다음 UITabBarController 문서 상태로서 . (읽기 전용)

@property (비 원자, 읽기 전용)의 UITabBar * 한 tabBar

토론 당신은 이 속성에 저장된의 UITabBar 개체 자체를 조작하려고 시도해서는 안

. 그렇게하면 탭 막대보기에서 예외가 발생합니다. 탭 표시 줄 인터페이스의 항목을 구성하려면 대신 viewControllers 속성에 하나 이상의 사용자 지정보기 컨트롤러를 할당해야합니다. 탭 표시 줄은 사용자가 지정한보기 컨트롤러에서 필요한 탭 막대 항목을 수집합니다. `self`이 예에서는 무엇

https://developer.apple.com/library/ios/documentation/uikit/reference/UITabBarController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006931-CH3-SW4

+0

나는 이해하지 못했습니다. appdelegate.m 파일에서 시도했습니다. @property (비 원자, 읽기 전용) UITabBarController * tabController; 그것은 작동하지 않습니다…. – nameless

+0

작동하지 않는 기능은 무엇입니까? 무엇을 성취하려고합니까? 너 무슨 짓을 한거야? 예상치 못한 결과가 나타 났습니까? "작동하지 않는"것이 무엇을 의미하는지 짐작하지 마십시오. 표시되는 탭 표시 줄 컨트롤러 및 현재 내용 대신 표시 할보기 컨트롤러에 대한 참조가 필요합니다. 그 중 하나가 있습니까? 또한 어떤 개체가 탭 바 컨트롤러의 내용을 변경할지 결정해야합니다. 그게 위임장인가요? – Jonah

관련 문제