Xamarin.ios MvvmCross使用选项卡中的模式ViewController

Xamarin.ios MvvmCross使用选项卡中的模式ViewController,xamarin.ios,modal-dialog,viewcontroller,mvvmcross,Xamarin.ios,Modal Dialog,Viewcontroller,Mvvmcross,我在SO和其他地方搜索了MvvmCross&Modal,但现有的答案对我们没有帮助 我们正在使用MonoTouch和MvvmCross开发一个跨平台应用程序,这似乎是一个非常强大的组合。然而,我们在导航方面遇到了一些问题,我们正在逐步解决这些问题!目前的问题是- 该应用程序使用一个TabBarController运行,每个选项卡都可以导航到更高的级别-这很好。但是,客户机希望其中一个选项卡上的“开始”按钮显示一个模式视图(隐藏其他所有内容,尤其是选项卡栏),然后该视图具有与UINavigatio

我在SO和其他地方搜索了MvvmCross&Modal,但现有的答案对我们没有帮助

我们正在使用MonoTouch和MvvmCross开发一个跨平台应用程序,这似乎是一个非常强大的组合。然而,我们在导航方面遇到了一些问题,我们正在逐步解决这些问题!目前的问题是-

该应用程序使用一个TabBarController运行,每个选项卡都可以导航到更高的级别-这很好。但是,客户机希望其中一个选项卡上的“开始”按钮显示一个模式视图(隐藏其他所有内容,尤其是选项卡栏),然后该视图具有与UINavigationController相同的工作方式的自己的级别,能够随时弹出回tabBarController

我们已经成功地打开了一个单一模式的视图,但是我们仍然无法从这里加载新的视图并弹出


感谢您的帮助/建议

我认为您要做的是定制演示者,使其将您的UIViewController包装在UINavigationController中,然后以模式演示该UINavigationController

为了实现这一点,@DeapSquatter最近的Pull请求中的代码可能会有所帮助——我认为您可以使用his来实现您想要的效果:

        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类,但人们很可能希望定制不同视图在每个应用程序上的显示方式。除了最简单的演示应用程序外,我预计touch上的大多数mvvmcross应用程序都会附带一个自定义演示程序

希望有帮助


斯图尔特

非常感谢您的帮助-我在周末之前不会有机会尝试,但我会让您了解最新情况。我一直在修改演示者,现在我可以看到它是如何使用的了-DeepShutter的示例对最终弄清楚发生了什么起到了很大的帮助。当我们的项目进一步推进时&我确信它完成了它的本意,我将上传代码,以防任何人发现它有用。谢谢如果像我们一样,您遇到viewmodel show代码运行但没有任何显示的情况,请仔细检查演示者的CurrentTopViewController是否符合您的预期。我们必须重写演示者的属性“CurrentTopViewController”,以便正确的视图呈现模式视图。