0

내 iPad 응용 프로그램에서보기를 분할하기 위해 UITabBar에서 옮겼습니다.UITabBar 동작을 사용하는 UISplitview

보기 컨트롤러는 마스터가 UINavigationController에 넣는 세부 정보로 보내집니다.

// Detail manager called when a cell is selected on the master 
UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:_detailViewController]; 

UIViewController *mainNavigationViewController = [self.splitViewController.viewControllers objectAtIndex:0]; 
NSArray *viewControllers = [[NSArray alloc] initWithObjects:mainNavigationViewController, detailNavigationController, nil]; 
self.splitViewController.viewControllers = viewControllers; 

이제 마스터의 셀을 선택할 때마다 세부 정보보기의 탐색 컨트롤러가 루트에서 시작됩니다.

대신 탭 표시 줄 컨트롤러의 동일한 동작을 원합니다. 한 탭에서 다른 탭으로 이동할 때 각 탭의 탐색 스택이 유지됩니다. 그리고 동일한 탭을 두 번 선택하면 네비게이션 스택이 루트보기 컨트롤러에 나타납니다.

분할보기 기반 응용 프로그램에서 적절한 방법으로이를 구현하는 방법은 무엇입니까?

답변

1

마스터 테이블의 각 셀에 대한 탐색 컨트롤러를 만들어야합니다. 셀을 탭하면 그에 따라 전환됩니다. 선택한 셀을 두드리면 표시된 내비게이션 컨트롤러에서 popToRootViewController:animated:으로 전화하십시오. 물론 탐색 컨트롤러에 대한 참조를 유지하려면 UISplitViewController의 하위 클래스를 만들어야합니다. 당신은 또한 VC를 나누라고 말하기 위해 MaterTableDelegate을 만들어야 만합니다. 그는 세부적인 측면에서 navcon을 변경해야합니다.

+0

UISplitViewController에서 각 UINavigationController를 추적하는 것에 흥미로운 점이 있습니다. 나는 이것을 시도 할 것이고, 나는 너에게 알릴 것이다. – Fmessina

+0

나는 당신의 제안에서 시작하는 해결책을 얻었다. 아래 답변에서 수행 한 모든 단계를 작성했습니다. – Fmessina

0

리바이스의 제안에서 출발하여 나는 실제 해결책을 구현했습니다. 은 요약하면 :

  • 서브 클래스 UISplitViewController
  • 당신이 따라 각각의 루트 UIViewControllers
  • 을 모든 네비게이션 컨트롤러를 초기화하여 UISplitViewController 서브 클래스의 초기화 내부
  • 필요 그것은 각 UINavigationController에 공개 참조를 만듭니다 마스터 디테일 구현에서, 마스터 뷰에서 셀을 선택할 때마다 오른쪽 네비게이션 컨트롤러 (사용자가 UISplitviewcontroller 하위 클래스에서 선언 한 모든 컨트롤러 중 하나)가 프리젠 테이션되는지 확인하십시오 세부 사항보기에 표시됩니다. 세부 관리자 (마스터 셀 선택에서 설정)의 NSinteger 속성으로이 항목을 관리하여 세부 정보보기에 표시 할 탐색 컨트롤러를 지정했습니다.
  • 같은 마스터보기 셀을 두 번 선택하면 동일한 내비게이션 컨트롤러를 루트로 가져와 동일한 UITabBar 동작을 시뮬레이션합니다.

희망이 있으면 도움이 될 것입니다.