2015-02-06 3 views
5

두 개의 탐색 컨트롤러가있는 가로보기 모드의 분할보기 컨트롤러가 있습니다.iPhone 6 Plus에서 분할보기 컨트롤러 회전

enter image description here

이 세로 단일 탐색 컨트롤러 및 상세보기 제어기 붕괴는 마스터에서 푸시한다. 상세 뷰 컨트롤러가 세로 방향으로 밀어 때 가로로 다시 돌리면

enter image description here

나는 그것이 자신의 네비게이션 컨트롤러에 다시 상세 뷰 컨트롤러를 넣어하는 방법을 이해하지 않습니다.

enter image description here

답변

4

당신은 UISplitViewControllerDelegate를 구현해야합니다. 가장 간단한 방법은 자신의 MySplitViewController 클래스를 가지고있는 viewDidLoad의 대리자로 자신을 설정할 수 있습니다 :

self.delegate = self; 

, 당신은 showDetailViewController이 같은보고 할 수 있습니다 첫째 : 적절한 처리를해야

- (BOOL) splitViewController:(UISplitViewController*)splitViewController showDetailViewController:(UIViewController*)vc sender:(id)sender 
{ 
    if (splitViewController.collapsed) 
    { 
     [(UINavigationController*)splitViewController.viewControllers[0]) pushViewController:vc animated:YES]; 
    } 
    else 
    { 
     self.viewControllers = @[ self.viewControllers.firstObject, vc ]; 
    } 
    return YES; 
} 

을 두 방향에서 자세히보기 표시.

- (UIViewController*)    splitViewController:(UISplitViewController*)splitViewController 
separateSecondaryViewControllerFromPrimaryViewController:(UIViewController*)primaryViewController 
{ 
    UINavigationController* nc = primaryViewController; 
    UIViewController* detailVC = nc.viewControllers.lastObject; 
    return detailVC; 
} 

이 방법은 기본 컨트롤러에서 당신이 원하는대로 타고 자세히보기 컨트롤러로 그를 반환 할 수있는 기회는 다음과 같습니다

다음, 당신은 다음과 유사한 다음 대리자 메서드를 구현해야합니다. 위의 예제 코드는 오히려 간단합니다. 탐색 viewController를 탐색하고 특정보기 컨트롤러에서 시작하는 모든 것을 선택해야 할 수도 있습니다 (자세히보기에서 푸시했다는 가정하에).

어쨌든, 약간의 시간이 걸릴 것이므로 결과는 UISplitViewController class reference이고 특히 UISplitViewControllerDelegate Protocol Reference 입니다. 훨씬 명확 해집니다. 바로 가기가 필요하면 Xcode split view 컨트롤러 템플릿 프로젝트를 살펴보십시오. 그 중 하나는 또한 문제에 대한 힌트 또는 정확한 해결책을 포함해야합니다.

관련 문제