xamarin.ios - MvvmCross 使用选项卡中的模态 ViewController

标签 xamarin.ios modal-dialog viewcontroller mvvmcross

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

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

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

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

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

最佳答案

我认为您要做的是自定义演示者,以便它将您的 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 类,但人们很可能希望在逐个应用程序的基础上自定义不同 View 的呈现方式。除了最简单的演示应用程序之外,我预计大多数 mvvmcross 触摸应用程序都将附带一个自定义演示器。

希望有帮助

斯图尔特

关于xamarin.ios - MvvmCross 使用选项卡中的模态 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11037119/

相关文章:

timer - C#/MonoTouch 启动器 : How to change the color of a Label periodically?

c# - MonoTouch 中自定义 TabBarController 中的 ViewDidLoad 中的公共(public)属性始终为 null

ios - 使用 UIPageViewController、UIScrollView 的 Xamarin.iOS ScrollView

jquery - 如何使用 Twitter Bootstrap 切换模式窗口?

ios - 如何以正确的方式回到初始的 ViewController?

ios - 如何为 Xamarin.iOS 创建绑定(bind)?

jquery - 通过点击JQuery DataTable打开Bootstrap模态

javascript - 关闭Iframe模态框后刷新父页面

swift - 无法将 UISwitch 连接到 viewcontroller.swift

ios - 如何在swift中引用NSObject类中的viewcontroller?