2011-03-16 3 views
2

여기에 있습니다. 필자는 iPad 용 boxview 응용 프로그램의 표준을 시작했습니다. 루트보기 왼쪽 및 자세히보기 오른쪽. 상세보기에는 도구 모음이 맨 위에 있습니다.세부 정보 하단에 도구 모음/탭 모음이있는 UISplitView

내가 추가하고 싶은 것은 세부 정보보기 하단의 탭 모음이며 도구 모음 탭 모음 사이의 상세보기에서 탭을로드합니다.

여기에 문제가 있습니다. 탭을로드하기 위해 다른 뷰를 추가합니까? 그렇다면 툴바 및 탭 바로 높이를 조정하고 존중하는 방법은 무엇입니까?

지우기?

누군가가 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. 예제가 훌륭 하겠지만 웹상의 모든 예가 상자 안의 세계 스타일에서 벗어난 것처럼 보입니다.

답변

2

예 대답은 정말 간단합니다. 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을 릴리스합니다. 또한 자동 크기 조정 마스크를 기록해 두십시오!

다른 사람들에게 도움이되기를 바랍니다.