2013-07-18 2 views
1

sample flowMvvmCross의 다른 뷰에서 SplitView를 구현하려면 어떻게해야합니까?

어떻게하면이 플로우를 MvvmCross를 사용하여 얻을 수 있습니까? SplitView에 대한 N + 1 튜토리얼을 살펴 보았지만 맞춤형 발표자가있는 메인 컨트롤러로 단일 분할보기를 사용합니다.

내 앱의 경우 기본 발표자 인 &으로 시작합니다. 홈이 기본 화면이며이 옵션 중 하나에 대해 분할보기를 표시해야합니다. 기본 UISplitViewController를 사용하여이 작업을 수행 할 수 있습니까? 또는 사용자 지정 컨트롤을 만들어야합니까? 사용자는 또한 홈 화면으로 다시 이동해야합니다.

답변

3

MvvmCross 발표자는 실제로 매우 작은 인터페이스를 가지고 있습니다. the N=24 video에서

분할 뷰의 예는 다음과 같습니다이 이후

public class SplitPresenter : MvxBaseTouchViewPresenter 
{ 
    private SplitViewController _svc; 

    public SplitPresenter(UIWindow window) 
    { 
     _svc = new SplitViewController(); 
     window.RootViewController = _svc; 
    } 

    public override void Show(Cirrious.MvvmCross.ViewModels.MvxViewModelRequest request) 
    { 
     var viewController = (UIViewController)Mvx.Resolve<IMvxTouchViewCreator>().CreateView(request); 

     if (request.ViewModelType == typeof(FirstViewModel)) 
      _svc.SetLeft(viewController); 
     else 
      _svc.SetRight(viewController); 
    } 
} 

은 UIKit와 상호 작용 단지 C#입니다, 사용자가 연장에 대해 매우 개방적이다. 예를 들어

, 당신은 할 수 :

  • 는 네비게이션 컨트롤러와 splitview 컨트롤러를 모두 포함하는 발표자를 확장하고 다음 쇼 요청시 적절하게 RootViewController을 변경할 수 있습니다.

  • 하거나 (이 다시 쉽게 만들 것입니다!) 네비게이션 컨트롤러의 자녀로 splitviewcontroller을 밀어 고려할 수

  • 또는 루트 컨트롤러로 splitviewcontroller을 떠나와 같이 로그인보기를 제시 고려할 수 상단 모달 디스플레이.

  • 나 ... 정말 옵션이 열려 -이 파워, 유연성, UIKit


한쪽 노트 가끔 단점과 함께 C#을 : 개인적으로, 나는 찾을 것을 나는 한 번 보다 복잡한 UI를 만들기 시작하면 종종 프레젠테이션 책임을 집계하기 시작합니다. 이것은 예를 들어, 같습니다

곳 CustomPresenter이 조각 활동 호스트의 사용자 지정 목록을 유지하고이 opcode blog post에 새로운 뷰/뷰 모델을
  • 를 표시하는 결정 뷰를 소유 탭을 묻는 N=25 발표자의
    • 다양한보기 모델 요청에 등록한 경우 (등록 할 때와 이후에 요청에 따라 다름)

    이것은 단지 C#이기 때문에 하나의 패러다임에서 변경하는 UI를 만들기 쉽습니다 (예 : 탭)를 다른 것으로 (예 : splitView), tho se UI는 잘 캡슐화되어 있습니다.

  • +0

    스튜어트 고맙습니다. 발표자를 확장하고 RootViewController를 전환하여이 작업을 수행했습니다. 귀하의 정보를 위해, 두 번째 옵션은 애플이 SplitViewController를 NavigationController에 푸시하지 못하도록하기 때문에 작동하지 않습니다;) 귀하의 모든 도움에 감사드립니다 !! –

    관련 문제