Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCross에서 View 발표자의 역할은 무엇입니까?


MVVMCross에서 View 발표자의 역할은 무엇입니까?


MVVMCross의 발표자는 응용 프로그램 내에서보기 모델이 제시되는 방법을 관리하는 데 중요한 역할을합니다. 이들은 뷰 모델 레이어와 실제 UI 사이의 중개자 역할을하여 유연하고 플랫폼 별 뷰 프리젠 테이션을 허용합니다.

뷰의 역할 발표자

1. 내비게이션 및 프레젠테이션 : View Pressener는보기 모델의 요청을 처리하여 새로운보기로 탐색하거나 기존보기의 프레젠테이션을 변경합니다. 그들은 플랫폼의 기능과 응용 프로그램의 요구 사항에 따라 이러한보기를 표시하는 방법을 결정합니다 [1] [2].

2. 플랫폼 별 구현 : 발표자는 뷰 레이어를 직접 처리하기 때문에 본질적으로 플랫폼별로 다릅니다. 이를 통해 개발자는 iOS 및 Android에서 탭을 사용하지만 Windows Phone의 피벗보기와 같은 장치 유형에 따라 프레젠테이션을 사용자 정의 할 수 있습니다 [1].

3. 사용자 정의 및 유연성 : 발표자를 통해 개발자는 다양한 화면 크기 또는 방향에 대한 다양한 프레젠테이션 전략을 구현할 수 있습니다. 예를 들어, 작은 전화 화면에서 목록과 세부 사항은 별도의 화면으로 표시 될 수 있지만 태블릿에서는 분할보기를 사용하여 나란히 표시 할 수 있습니다 [1].

4. 프레젠테이션 값 사용 : 발표자는`mvxViewModelRequest '의 일부인'PresentationValues ​​'를 통해 추가 정보를받을 수 있습니다. 이를 통해 View 모델은 로그인 작업 후 내비게이션 스택을 지우는 것과 같이 뷰를 제시 해야하는 방법에 대한 힌트를 발표자에게 전달할 수 있습니다 [7].

5. 기본 및 사용자 정의 발표자 : MVVMCross는 각 플랫폼에 대한 기본 발표자를 제공하지만 개발자는 특정 응용 프로그램 요구를 충족시키기 위해 사용자 정의 발표자를 만들 수도 있습니다. 사용자 정의 발표자는 기본 동작을 무시하여 고유 한 내비게이션 패턴 또는 프리젠 테이션 스타일을 구현할 수 있습니다 [2] [4].

주요보기 발표자

-`show (mvxViewModelRequest 요청)`:`showViewModel ()`가보기 모델에서 호출 될 때이 메소드가 호출됩니다. 요청 세부 사항에 따라 해당 뷰를 구성하고 표시합니다 [1].

-`changepresentation (mvxPresentationHint 힌트)`:이 메소드는보기 닫기 또는 프리젠 테이션 모드 변경과 같은 새로운보기 모델을 표시하지 않는 프리젠 테이션 변경을 허용합니다 [1].

##보기 발표자 사용의 이점

- 디커플링 : 발표자는 UI 프레젠테이션에서 뷰 모델 로직을 분리하여 클리너 및 유지 관리 가능한 코드를 허용합니다.
-크로스 플랫폼 일관성 : 플랫폼 별 구현에도 불구하고 발표자는 뷰 모델이 다른 플랫폼에서 일관되게 작동하도록합니다.
- 사용자 정의 : 뷰 모델 로직을 변경하지 않고 UI를 다른 장치와 화면 크기에 적응할 수있는 유연한 방법을 제공합니다.

요약하면, MVVMCross의 발표자보기는 다양한 플랫폼에서 뷰가 제시되는 방식을 관리하는 데 필수적이며, 유연성, 사용자 정의 및보기 모델과 UI 계층 간의 깨끗한 분리를 제공합니다.

인용 :
[1] https://gregshackles.com/presenters-in-mvvmcross-aprimer/
[2] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[3] https://learn.microsoft.com/en-us/archive/msdn-magazine/2011/december/mvpvm-design-pattern-the-model-presenter-viewmodel-design-pattern-for-wpf
[4] https://www.mvvmcross.com/mvvmcross-5-release/
[5] https://www.mvvmcross.com/documentation/platform/ios/ios-view-presenter
[6] https://softwareengineering.stackexchange.com/questions/60774/model-view-presenter-thempletation-thoughts
[7] https://gregshackles.com/presenters-in-mvvmcross-using-presentation-values/
[8] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms-view-presenter
[9] https://www.gatling.xyz/explaining-model-view-presenter/
[10] https://www.mvvmcross.com/documentation/platform/android/android-view-presenter