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