예 대답은 정말 간단합니다. SplitViewController와 같은 UITabBarControllers는 Apple 만이 루트보기 컨트롤러가되도록 의도했기 때문에 다른보기에서 TabBarController를 중첩 할 수는 없지만보기에서 UITabBar를 중첩 할 수는 있습니다.
하단의 상세보기에 탭바를 추가하고 상단에 탐색 모음을 추가 한 다음 상단에 탐색 표시 줄을 추가했습니다. Interface Builder의 모든 기능!, 자리 표시 자 뷰에서 자동 크기 조정을 사용하여 모든 기능을 켜기를 원할 것입니다.
다음으로 UITabBarDelegate를 구현하십시오. 이를 위해 당신이 필요합니다 : 당신은 당신이 사용자가 클릭 한 탭 알려 드릴 것입니다 각 항목을 인터페이스 빌더에 고유 한 태그를 주면 item.tag을 사용할 수 있습니다에서
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
합니다. 나는 설치 광산에 대한 값을 정의 :
먼저
#define VIEW_TAB_A 0
#define VIEW_TAB_B 1
#define VIEW_TAB_C 2
당신이 다음 ... 물론 최고의 난 그냥 당신이
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
[self switchToView:item];
}
- (void) switchToView : (UITabBarItem*) item {
if(currentViewController != nil) {
[currentViewController viewWillDisappear:NO];
[currentViewController.view removeFromSuperview];
}
switch(item.tag) {
case VIEW_TAB_A:
currentViewController = self.viewA;
break;
case SCAN_VIEW_TAB_B:
currentViewController = self.viewB;
break;
case PROMOTIONS_VIEW_TAB_C:
currentViewController = self.viewC;
break;
}
UIView *aView = currentViewController.view;
aView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
aView.frame = placeholderView.frame;
[currentViewController viewWillAppear:NO];
[self.view insertSubview:aView aboveSubview:placeholderView];
if(currentViewController != nil) {
[currentViewController viewDidDisappear:NO];
}
[currentViewController viewDidAppear:NO];
}
의 의견 (viewA, viewB, viewC를) ALLOC하는 것을 잊지 볼 수 있도록 할 것 당신은 viewDidLoad에서 분명히 dealloc을 릴리스합니다. 또한 자동 크기 조정 마스크를 기록해 두십시오!
다른 사람들에게 도움이되기를 바랍니다.