xamarin.ios – MvvmCross使用Tab中的模态ViewController

前端之家收集整理的这篇文章主要介绍了xamarin.ios – MvvmCross使用Tab中的模态ViewController前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
搜索了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应用程序都会附带一个自定义的演示者.

希望有所帮助

斯图尔特

猜你在找的iOS相关文章