SplitView 的问题是导航栏……它不见了。我使用平板电脑演示器,就像在 MVVMCross 示例中一样。尝试添加导航栏项目时,例如 CustomerManagement 示例中所示,它不会显示。
我认为这与 UINavigation 控制器丢失有关,但我不知道如何使用平板电脑演示器来实现它。
我的视图是使用 Dialog 构建的,我的演示者使用的是 MvxBaseTouchViewPresenter。
谁能告诉我在使用拆分视图和对话框时如何使用导航栏?
提前致谢!
SplitView 的问题是导航栏……它不见了。我使用平板电脑演示器,就像在 MVVMCross 示例中一样。尝试添加导航栏项目时,例如 CustomerManagement 示例中所示,它不会显示。
我认为这与 UINavigation 控制器丢失有关,但我不知道如何使用平板电脑演示器来实现它。
我的视图是使用 Dialog 构建的,我的演示者使用的是 MvxBaseTouchViewPresenter。
谁能告诉我在使用拆分视图和对话框时如何使用导航栏?
提前致谢!
从您的描述中,我对您的 UI 不是 100% 清楚 - 如果我的想法有误,那么一些图片可能会有所帮助。
但是...基本上我相信您可以在纯 MonoTouch 中实现的任何 UI,您也应该能够在 MvvmCross 中实现。
看起来你已经解决了很多这个问题,但只是回顾一下:
在您的示例中,听起来您可能想要专门化您的拆分视图之一,以便它包含一个 UINavigationController - 然后您希望您的 Presenter 将您的新视图传递给该 UINavigationController 以进行推送。
这只是 C# 代码——它只是在你的 UI 项目中——你可以像“普通的 MonoTouch”一样随意编写它。
“高级”演示者的一个示例是会议示例 - 了解它如何将显示操作委托给选项卡栏 - https://github.com/slodge/MvvmCross/blob/vnext/Sample%20-%20CirriousConference/Cirrious。 Conference.UI.Touch/ConferencePresenter.cs
我设法回答了我自己的问题。如果我的方法有误,请纠正我!
我使用与 github 上的 MVVMCross 示例中相同的设置。我对 SplitViewController 做了一个小改动:
例如,改变这个: this.ViewControllers = new UIViewController[] { controller, ViewControllers[1] };
为此:_detailNav.PushViewController(controller, true);
现在 _detailNav(一个 UINavigationController)用于更改视图,而不是在 SplitView 中设置新的 ViewControllers 数组。