我搜索了SO&其他地方的MvvmCross&莫代尔,但现有的答案并没有帮助我们.
我们正在使用MonoTouch& amp;开发一个跨平台的应用程序. MvvmCross,这似乎是非常强大的组合.但是,我们在导航方面遇到了一些问题,我们正在逐渐破解!目前的问题是 –
该应用程序使用TabBarController运行,每个选项卡都有导航到更高级别 – 这很好.然而,客户端需要其中一个选项卡上的“开始”按钮以显示模态视图(隐藏其他所有内容,尤其是标签栏),然后其具有与UINavigationController相同的自身级别,具有该功能随时弹回tabBarController.
我们设法提出了一个模态视图,但我们仍然坚持从这里加载新视图并弹出.
任何帮助/建议表示赞赏!
解决方法
我认为你要做的是自定义presenter,以便它将你的UIViewController包装在UINavigationController中 – 然后以模态方式呈现UINavigationController?
为了实现这一点,来自@DeapSquatter的最近Pull请求中的代码可能有助于-https://github.com/slodge/MvvmCross/pull/9 – 我认为您可以使用他的modal nav presenter来实现您正在寻找的效果:
if (view is IMvxModalTouchView) { if (_currentModalViewController != null) throw new MvxException("Only one modal view controller at a time supported"); var newNav = new UINavigationController(); newNav.PushViewController(view as UIViewController,false); _currentModalViewController = view as UIViewController; PresentModalViewController(newNav,true); return; }
mvvmcross的体系结构在这里是有意的可扩展和可配置的 – 虽然我们包含一些基本的Presenter类,但很可能人们想要逐个应用地定制不同视图的呈现方式.除了最简单的演示应用程序之外,我预计大多数触摸的mvvmcross应用程序都会附带一个自定义的演示者.
希望有所帮助
斯图尔特