MvvmCross和MonoTouch:删除顶部栏

时间:2013-02-24 13:41:41

标签: c# xamarin.ios mvvmcross

我正在使用MvvmCross来创建MonoTouch应用程序。我跟着basic tutorial,到目前为止一直很好。唯一的问题是我的(初始和迄今为止唯一的)视图显示顶部栏/导航栏,我不想要。我可以通过调用

来隐藏导航栏
this.NavigationController.NavigationBarHidden = true;

在视图控制器的ViewDidLoad中。我宁愿不必压制导航栏,而是根本不在那里。它出现的事实表明我可能做错了/从错误的基类继承?

有关我的代码的更多详情:

视图控制器继承自MvxBindingTouchViewController

我的安装程序类继承自MvxBaseTouchBindingSetup(我不会在任何地方使用TouchDialog,因此我不会继承MvxTouchDialogBindingSetup)。

任何帮助将不胜感激!如果我需要提供有关我的代码的更多详细信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

导航栏是UINavigationController的一部分,它在默认的Presenter中使用。

Presenter决定如何显示View(一个UIViewController) - 它是显示在弹出窗口中,显示为模态视图,推入导航控制器等等。

如果您想自定义Presenter,例如这样它就隐藏了导航栏 - 然后只需在你找到代码的AppDelegate.cs中切换你自己的实现:

        // initialize app for single screen iPhone display
        var presenter = new MvxTouchViewPresenter(this, _window);
        var setup = new Setup(this, presenter);
        setup.Initialize();

您可以在TwitterSearch和Conference示例中看到一些自定义演示者的示例。 TwitterSearch使用不同的手机与平板电脑的演示者;和会议使用一个知道多个标签的演示者,每个标签都包含一个NavigationController。

还有一些关于自定义演示者的其他问题,例如MvvmCross Using a modal ViewController from a Tabwhy does MvxModalSupportTouchViewPresenter in MvvmCross only support one modal view