如何使用MvvmCross实现此流程?我浏览了关于SplitView的N + 1教程,但是使用单个拆分视图作为主控制器和自定义存在。
对于我的应用,它以默认的提交者和& Home是主屏幕,我需要显示其中一个选项的拆分视图。这是否可以使用默认的UISplitViewController?或者我需要创建自定义控件吗?用户还需要导航回主屏幕。
答案 0 :(得分: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作为根控制器,并将您的登录视图显示为顶部的模式显示。
或......真的选项是开放的 - 这是C#加上UIKit的力量,灵活性和偶尔的怪癖
一方面注意:就个人而言,我发现一旦我开始构建更复杂的UI,我就会开始聚合演示文稿的职责。例如,显示了这一点:
因为这只是C#,所以构建从一个范例(例如制表符)更改为另一个范例(例如splitView)并且这些UI被很好地封装的UI相当容易 - 它们应该照顾好自己。