2015-01-08 3 views
6

UINavigationItem에 UISavitController에 포함 된 UISplitViewController를 사용하여 UINavigationItem 단추를 사용하여 마스터 뷰의 표시를 세로 방향으로 토글합니다. 처음 뷰가 세로 방향으로로드 될 때 상세 뷰 위에 마스터 뷰를 표시하려고합니다.UISplitViewController 세로 방향으로 세부 위에 위의 마스터보기를 표시합니다.

내가 발견 한 유사한 예제는 화면을 세로 방향으로 분할 한 마스터 뷰와 상세 뷰를 보여 주지만 UISplitViewController를 처음로드 할 때 세부 뷰를 마스터 뷰로 전체 화면으로 표시하려면 상세 뷰가 필요합니다 (마스터보기가 왼쪽에서 스 와이프 된 경우). 누구든지 그 일을하는 방법을 알고 있습니까?

답변

10

편집 : 중복되지 않습니다. 의견에서 발견 된 답변. 해결 방법은 UISplitViewController에서 preferredDisplayMode을 사용하고이 값을 UISplitViewControllerDisplayModePrimaryOverlay

으로 설정합니다. 설명과 설명에 대한 원래 응답을 남겨 둡니다. 이것은이의 중복


원래 답변 : UISplitViewController in portrait on iPhone shows detail VC instead of master 참고로

,이 경우의 해결책은 UISplitViewControllerDelegate는 다음 코드를 사용하여 구현하는 뷰 컨트롤러를 가지고 있었다 :

- (BOOL)splitViewController:(UISplitViewController *)splitViewController 
collapseSecondaryViewController:(UIViewController *)secondaryViewController 
    ontoPrimaryViewController:(UIViewController *)primaryViewController { 

    if ([secondaryViewController isKindOfClass:[UINavigationController class]] 
     && [[(UINavigationController *)secondaryViewController topViewController] isKindOfClass:[DetailViewController class]] 
     && ([(DetailViewController *)[(UINavigationController *)secondaryViewController topViewController] detailItem] == nil)) { 

     // Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded. 
     return YES; 

    } else { 

     return NO; 

    } 
} 
+0

중복되지 않는 해결책은 마스터보기 또는 상세보기를 표시하는 것입니다. 세부보기의 일부를 덮는 마스터보기와 함께 마스터와 디테일을 동시에 표시 할 수있는 답변을 찾고 있습니다. 다른 대답으로 나를 가르키거나 새로운 해결책을 게시 할 수 있습니까? –

+0

아. 나는 잘못 읽었다. UISplitViewController에는'preferredDisplayMode' 속성이 있습니다. 그게 효과가 있니? 그 물건이 내 머리 꼭대기에서 떨어져 있는지 모르겠다. – lewiguez

+0

아니요. 그것은 작동하지 않습니다. 화면을 분할합니다. : ( – lewiguez

1

또는

을 사용할 수 있습니다.
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController: (UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { 

    // Force master view to show in portrait and landscape 

    return NO; 
} 
관련 문제