다음을 통해 공유


Xamarin에서 tvOS 분할 보기 컨트롤러 작업

Warning

iOS 디자이너는 Visual Studio 2019 버전 16.8 및 Mac용 Visual Studio 2019 버전 8.8에서 사용이 중단되었으며 Visual Studio 2019 버전 16.9 및 Mac용 Visual Studio 버전 8.9에서 제거되었습니다. iOS 사용자 인터페이스를 빌드하는 권장 방법은 Xcode의 Interface Builder를 실행하는 Mac에서 직접 빌드하는 것입니다. 자세한 내용은 Xcode를 사용하여 사용자 인터페이스 디자인을 참조하세요.

분할 보기 컨트롤러는 동시에 화면에 마스터 및 세부 정보 보기 컨트롤러를 나란히 표시하고 관리합니다. 분할 보기 컨트롤러는 마스터 뷰(왼쪽의 작은 섹션)에 영구적이고 포커스가 있는 콘텐츠와 세부 정보 보기(오른쪽의 더 큰 섹션)의 관련 세부 정보를 표시하는 데 사용됩니다.

샘플 분할 보기

분할 보기 컨트롤러 정보

위에서 설명한 대로 분할 보기 컨트롤러는 나란히 표시되는 마스터 및 세부 정보 보기 컨트롤러를 관리하며, 마스터는 왼쪽에 더 작은 보기이고 오른쪽에는 세부 정보가 더 큽니다.

또한 마스터 뷰 컨트롤러를 숨기거나 필요에 따라 표시할 수 있습니다.

숨겨진 마스터 뷰 컨트롤러

분할 보기 컨트롤러는 마스터 뷰의 범주와 세부 정보 보기의 필터링된 결과와 함께 필터링 가능한 콘텐츠 목록을 표시하는 데 자주 사용합니다. 일반적으로 왼쪽의 테이블 뷰와 오른쪽의 컬렉션 뷰표시됩니다.

분할 보기 컨트롤러가 필요한 사용자 인터페이스를 디자인할 때 Apple은 변경되지 않는 마스터 및 세부 정보 보기 컨트롤러를 사용할 것을 제안합니다(구조가 아닌 콘텐츠만 변경됨). 뷰 컨트롤러를 교체해야 하는 경우 탐색 컨트롤러를 변경해야 하는 뷰 컨트롤러의 기반으로 사용하는 것이 가장 좋습니다(마스터 또는 세부 정보).

Apple에는 분할 보기 컨트롤러를 사용하기 위한 다음과 같은 제안이 있습니다.

  • 올바른 분할 백분율 사용 - 기본적으로 분할 보기 컨트롤러는 마스터 뷰 컨트롤러에 화면의 3분의 1을 사용하고 세부 정보 보기 컨트롤러의 경우 3분의 2를 사용합니다. 필요에 따라 50/50 분할을 사용할 수 있습니다. 올바른 백분율을 선택하여 콘텐츠가 화면에 균형 있게 표시되도록 합니다.
  • 기본 선택 유지 - 세부 정보 보기의 콘텐츠는 마스터 보기에서 사용자의 선택 항목에 대한 응답이지만 마스터 보기 콘텐츠는 수정되어야 합니다. 또한 마스터 보기에서 현재 선택한 항목을 명확하게 표시해야 합니다.
  • 단일 통합 타이틀 사용 - 일반적으로 세부 정보 보기와 마스터 보기의 제목 대신 세부 정보 보기에서 가운데에 있는 단일 제목을 사용하려고 합니다.

분할 보기 컨트롤러 및 스토리보드

Xamarin.tvOS 앱에서 분할 보기 컨트롤러를 사용하는 가장 쉬운 방법은 iOS 디자이너를 사용하여 앱의 UI에 컨트롤러를 추가하는 것입니다.

  1. Solution Pad에서 파일을 두 번 클릭하고 Main.storyboard 편집을 위해 엽니다.

  2. 도구 상자에서 분할 보기 컨트롤러를끌어서 보기에 놓습니다.

    분할 보기 컨트롤러

  3. 기본적으로 iOS 디자이너는 마스터 보기에 탐색 컨트롤러와 뷰 컨트롤러를 설치합니다. 앱의 요구 사항에 맞지 않는 경우 삭제하기만 하면 됩니다.

  4. 기본 마스터 뷰를 제거하면 새 뷰 컨트롤러를 디자인 화면으로 끌어다 놓습니다.

    뷰 컨트롤러

  5. Control 키를 누른 채로 분할 보기 컨트롤러에서 새 마스터 뷰 컨트롤러로 끌어옵니다.

  6. 팝업 메뉴에서 마스터선택합니다.

    팝업 메뉴에서 마스터 선택

  7. 마스터 및 세부 정보 보기의 내용을 디자인합니다.

    예제 레이아웃

  8. 속성 패드위젯 탭이름을 할당하여 C# 코드에서 UI 컨트롤을 사용합니다.

  9. 변경 내용을 저장하고 Mac용 Visual Studio 돌아갑니다.

스토리보드 작업에 대한 자세한 내용은 Hello, tvOS 빠른 시작 가이드를 참조하세요.

분할 보기 컨트롤러 작업

위에서 설명한 대로 분할 보기 컨트롤러는 필터링된 콘텐츠를 사용자에게 표시하는 경우에 자주 사용됩니다. 기본 범주는 마스터 보기의 왼쪽에 표시되고, 사용자의 선택에 따라 세부 정보 보기의 오른쪽에 필터링된 결과가 표시됩니다.

마스터 및 세부 정보 액세스

마스터 및 세부 정보 보기 컨트롤러에 프로그래밍 방식으로 액세스해야 하는 경우 분할 보기 컨트롤러의 속성을 사용합니다 ViewControllers . 예시:

// Gain access to master and detail view controllers
var masterController = ViewControllers [0] as MasterViewController;
var detailController = ViewControllers [1] as DetailViewController;

마스터 뷰 컨트롤러의 첫 번째 요소(0)와 두 번째 요소(1)가 Detail인 배열로 표시됩니다.

마스터에서 세부 정보 액세스

일반적으로 마스터에서 사용자의 선택에 따라 세부 정보 보기에 자세한 정보를 표시하므로 마스터에서 세부 정보에 액세스하는 방법이 필요합니다.

이 작업을 수행하는 가장 쉬운 방법은 마스터 뷰 컨트롤러 클래스에 속성을 노출하는 것입니다. 예를 들면 다음과 같습니다.

public DetailViewController DetailController { get; set;}

분할 뷰 컨트롤러에서 메서드를 재정의 ViewDidLoad 하고 두 보기를 함께 묶습니다. 예시:

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    // Gain access to master and detail view controllers
    var masterController = ViewControllers [0] as MasterViewController;
    var detailController = ViewControllers [1] as DetailViewController;

    // Wire-up views
    masterController.SplitViewController = this;
    masterController.DetailController = detailController;
    detailController.SplitViewController = this;
}

마스터가 필요에 따라 새 데이터를 표시하는 데 사용할 수 있는 세부 정보 보기 컨트롤러에 속성 및 메서드를 노출할 수 있습니다.

마스터 표시 및 숨기기

필요에 따라 분할 보기 컨트롤러의 속성을 사용하여 마스터 뷰 컨트롤러를 PreferredDisplayMode 표시하고 숨길 수 있습니다. 예시:

// Show hide split view
if (SplitViewController.DisplayMode == UISplitViewControllerDisplayMode.PrimaryHidden) {
    SplitViewController.PreferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible;
} else {
    SplitViewController.PreferredDisplayMode = UISplitViewControllerDisplayMode.PrimaryHidden;
}

이 열거형은 UISplitViewControllerDisplayMode 마스터 뷰 컨트롤러가 다음 중 하나로 표시되는 방법을 정의합니다.

  • 자동 - tvOS는 마스터 및 세부 정보 보기의 프레젠테이션을 제어합니다.
  • PrimaryHidden - 마스터 뷰 컨트롤러를 숨깁니다.
  • AllVisible - 마스터 및 세부 정보 보기 컨트롤러를 나란히 표시합니다. 일반적인 기본 프레젠테이션입니다.
  • PrimaryOverlay - 세부 정보 보기 컨트롤러는 아래까지 확장되며 마스터에서 처리됩니다.

현재 프레젠테이션 상태를 얻으려면 분할 보기 컨트롤러의 속성을 사용합니다 DisplayMode .

요약

이 문서에서는 Xamarin.tvOS 앱 내에서 분할 보기 컨트롤러를 디자인하고 사용하는 작업을 설명했습니다.