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应用程序都会附带一个自定义的演示者.

希望有所帮助

斯图尔特

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...