我正在使用MvvmCross来创建MonoTouch应用程序。我跟着basic tutorial,到目前为止一直很好。唯一的问题是我的(初始和迄今为止唯一的)视图显示顶部栏/导航栏,我不想要。我可以通过调用
来隐藏导航栏this.NavigationController.NavigationBarHidden = true;
在视图控制器的ViewDidLoad中。我宁愿不必压制导航栏,而是根本不在那里。它出现的事实表明我可能做错了/从错误的基类继承?
有关我的代码的更多详情:
视图控制器继承自MvxBindingTouchViewController
。
我的安装程序类继承自MvxBaseTouchBindingSetup
(我不会在任何地方使用TouchDialog,因此我不会继承MvxTouchDialogBindingSetup
)。
任何帮助将不胜感激!如果我需要提供有关我的代码的更多详细信息,请告诉我。
答案 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 Tab和why does MvxModalSupportTouchViewPresenter in MvvmCross only support one modal view