2016-11-22 7 views
2

의 ViewController 마스터를 보여주는 강제하는 방법에 대해 설명합니다.UISplitViewController : 나는 UINavigationControllers없이 <strong>마스터</strong>과 <strong>세부</strong> viewcontrollers과 더불어, <code>UISplitViewController</code>을 사용하고

경우에 따라 (예 : 범용 링크를 클릭 할 때) 응용 프로그램이 항상 마스터 viewcontroller를 표시하도록하고 싶습니다.

어떻게하면됩니까?

프로그래밍 방식으로 디테일에서 마스터로 전환하는 방법이 있습니까?

extension UISplitViewController { 
    func toggleMasterView() { 
     let barButtonItem = self.displayModeButtonItem 
     UIApplication.shared.sendAction(barButtonItem.action!, to: barButtonItem.target, from: nil, for: nil) 
    } 
} 

사용법 :

self.splitViewController?.toggleMasterView() 
+0

이게 원하는 것입니까? http://stackoverflow.com/questions/25875618/uisplitviewcontroller-in-portrait-on-iphone-shows- detail-vc-instead-of-master – zombie

+0

안녕하세요 @ zombie 거기에 대한 답변을 마스터에서 항상 일부 대리자 기능을 설정하여 응용 프로그램을 시작하는 것 같습니다. 하지만 제 경우에는 수동으로 자세히보기 컨트롤러를 닫고 싶습니다. 그렇게 할 수있는 방법이 있어야합니까? –

답변

1

당신은 preferredDisplayMode

self.splitViewController?.preferredDisplayMode = UISplitViewControllerDisplayMode.allVisible 

을 설정할 수 있습니다 짐승, 그리고 설명서가 혼란 스럽습니다. 접힌 지 아닌지의 두 가지 모드로 작동하는 것으로 간주하면 가장 잘 이해할 수 있습니다. 접힌 모드는 분할보기가 가로로 축소 된보기 (예 : iPhone)로 표시 될 때 적용됩니다. 그렇지 않으면 축소되지 않습니다 (예 : iPad).

속성 preferredDisplayMode은보기가 접히지 않은 경우 (즉, iPad)에만 적용되며이보기를 사용하여 마스터 또는 세부 정보보기를 선택할 수 있습니다. 당신이 탐색 컨트롤러를 사용하지 않는 경우 축소 된 모드에서

은, 원본 마스터 뷰는 폐기 할 수있다 :이 붕괴 된 후

, 분할 뷰 컨트롤러 보고서는 viewControllers에 하나의 아이 뷰 컨트롤러를 가진 재산. 다른 뷰 컨트롤러 대리자 개체의 도움으로 다른 뷰 컨트롤러의 내용에 붕괴 또는 일시적으로

을 폐기 그러나 분할 뷰 컨트롤러에서 작동하도록 설계로는, 네비게이션 컨트롤러를 사용하는 것이 훨씬 더 있습니다 그들과 함께 :

분할보기 컨트롤러는 더 많은 인터페이스를 조정하는 방법을 알고 있습니다. 직관적 인 방법. 보기 컨트롤러를 제공하기 위해 다른 컨테이너보기 컨트롤러 (탐색 컨트롤러와 같은)과도 작동합니다.만약 탐색 컨트롤러를 사용하는 경우

다음 원본 마스터 뷰 탐색 스택의 저면에있을 수있다 : 수평 소형 환경에서

스플릿 뷰 컨트롤러 이상의 탐색 컨트롤러처럼 작동 처음에 기본보기 컨트롤러를 표시하고 밀거나

그래서 당신이 좋아하는 뭔가를 할 수 필요에 따라 보조보기 컨트롤러를 보여주고 이 :

if split.isCollapsed, 
    let nav = split.viewControllers[0] as? UINavigationController 
{ 
    nav.popToRootViewController(animated:false) 
} else { 
    split.preferredDisplayMode = .allVisible 
} 

(마스터 뷰 상세 뷰를 보여주는뿐만 아니라 마스터의 전망을 밀어 경우가 훨씬 더 복잡 할 수 있습니다. 이 코드는 마스터보기 탐색 스택의 루트에 나타납니다.

0

분할 뷰 컨트롤러는 당신이 토글 동작 같은 것을 찾고 있다면