5

我已经在 SO 和其他地方搜索了 MvvmCross 和 Modal,但是现有的一个答案对我们没有帮助。

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

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

我们已经设法调出一个模态视图,但是我们一直停留在从这里加载新视图并弹出回来。

任何帮助/建议表示赞赏!

4

1 回答 1

5

我认为您要做的是自定义演示者,以便它将您的 UIViewController 包装在 UINavigationController 中 - 然后以模态方式呈现该 UINavigationController?

为了实现这一点,@DeapSquatter 最近的 Pull 请求中的代码可能会有所帮助 - https://github.com/slodge/MvvmCross/pull/9 - 我认为您可以使用他的模态导航演示 器来实现您的效果寻找:

        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 触摸应用程序都将附带一个自定义演示器。

希望有帮助

斯图尔特

于 2012-06-14T16:27:32.363 回答