2013-05-02 2 views
0

내 응용 프로그램은 tabbarcontroller와 함께 윈도우의 루트보기로 작동하며 각 탭 항목을 클릭 할 때 필요한 뷰가있는 splitviewcontroller가로드됩니다. 분할 뷰의 왼쪽 및 오른쪽 창은 탐색 컨트롤러입니다. 이제 임의의 버튼 동작이나 테이블 뷰의 didselectrow에 해당하는 뷰가 오른쪽 창에로드됩니다. 오른쪽 창에서 뷰를로드하는 데 성공했지만 새로운 뷰 컨트롤러가 분할 뷰의 오른쪽 창에서로드 될 때 barbuttonitem을 표시 할 수 없습니다.uButtonItem이 uisplitviewcontroller의 뷰가 변경되었을 때 표시되지 않습니다.

tabbarcontroller

-> splitviewcontroller

----->

Leftpane : 탐색 컨트롤러

--------------->보기 컨트롤러

-----> rightPane이 : 탐색 컨트롤러

---------------> 뷰 컨트롤러

,

탭 막대의 각 Splitview는 'iPad Mail app'처럼 작동합니다.

응용 프로그램을 gernalised하기 위해, 나는 upplviewviewroller와 slipitview에서 alls 뷰를로드하는 uipopovercontroller의 델리게이트를 가진 RootiPadViewController 클래스를 가져 왔습니다.

다음과 같이 분할보기의 오른쪽 창에 viewcontroller를로드합니다.

UISplitViewController *splitViewController = (UISplitViewController*)[appDelegate.tabBarController.viewControllers objectAtIndex:tabIndex]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
//[navController pushViewController:viewController animated:YES]; 

NSMutableArray *array = [[NSMutableArray alloc] init]; 
[array addObject:[splitViewController.viewControllers objectAtIndex:0]]; 
[array addObject:navController]; 
splitViewController.viewControllers = array; 
[array release]; 

splitviewcontroller에서보기가 변경되면 바 버튼 항목이 표시되지 않는 이유를 제안 해주세요.

앱은 내가 잘못 될 수있다 enter image description here

enter image description here

답변

0

다음과 같이 보이지만, 당신이 세로 모드에있을 때 나의 지식, 바 버튼 항목 만 나타납니다 이유는

  • 분할보기 컨트롤러에는 두 개의 컨트롤러 (마스터 및 상세보기 컨트롤러)가 있습니다.
  • 가로 모드에있을 때 두보기 컨트롤러가 모두 화면에 표시됩니다.
  • 당신이 세로 모드에있을 때, 단지 상세 뷰 컨트롤러가 표시됩니다
  • , 따라서 바 버튼 항목이 나타납니다
  • 바 버튼 항목의 목표는 당신이 세로 모드에서 마스터 뷰 컨트롤러를 열 수 있도록하는 것입니다

그게 도움이되는지 알려주세요.

+0

barbuttonitem이 세로 모드로 표시되지 않습니다. – SriPriya

0

네비게이션 컨트롤러의 경우 각보기는 왼쪽 및 오른쪽 바 buttom 항목을 정의해야합니다. 정의되지 않은 경우 탭바는 비어 있습니다.무료로 얻을 수있는 유일한 바 버튼 항목은 navController의 rootViewController 위에 새 View Controller를 누를 때 나타나는 뒤로 바 버튼 항목입니다.

NavigationControoler의 각 viewController의 ViewDidLoad 메소드에 할당해야하며 그들이 바로 당신의 parentViewController (즉,있는 navigationController)의 왼쪽 barbutton 항목으로

+0

안녕하세요, 참고 문헌을 self.navigationItem.leftBarButtonItem = barButtonItem으로 추가했습니다. 뷰가 세로 모드 인 경우 barbuttonitem은 spliviewcontroller를 통해 처리됩니다. 'willHideViewController ...'위임 메서드 – SriPriya

0

그것은의 UITabBar 내부 UISplitViewController를 사용하는 방법에 관하여이 샘플 프로젝트 https://github.com/alexth/TBSV

을 확인하시기 바랍니다. 모든 로직이 Appdelegate에 있습니다. -loadSplitToTab 모든 컨트롤러를 완전히 상속합니다. 다른 모든 경우에는 UISplitViewController가 루트가되어야합니다 (Apple 문서에 설명 된대로). 그러면 UITabBar 내부에서 UISplitViewController를 사용할 수 없습니다.