【问题标题】:How to use navigation bar while using splitview and touch.dialog如何在使用 splitview 和 touch.dialog 时使用导航栏
【发布时间】:2012-11-29 17:10:43
【问题描述】:

SplitView 的问题是导航栏……它不见了。我使用平板电脑演示器,就像在 MVVMCross 示例中一样。尝试添加导航栏项目时,例如 CustomerManagement 示例中所示,它不显示。

我认为这与 UINavigation 控制器丢失有关,但我不知道如何使用平板电脑演示器来实现它。

我的视图是使用 Dialog 构建的,我的演示者使用的是 MvxBaseTouchViewPresenter。

谁能告诉我在使用拆分视图和对话框时如何使用导航栏?

提前致谢!

【问题讨论】:

    标签: xamarin.ios uinavigationbar uisplitviewcontroller monotouch.dialog mvvmcross


    【解决方案1】:

    根据您的描述,我不是 100% 清楚您的用户界面 - 如果我的想法有误,那么一些图片可能会有所帮助。

    但是...基本上我相信您可以在纯 MonoTouch 中实现的任何 UI,您也应该能够在 MvvmCross 中实现。

    看起来您已经解决了很多问题,但只是回顾一下:

    • 请求导航时
    • 系统要求 Container 构造一个“视图”(它是 UIViewController - 不是 UIView)
    • 系统将加载的 View 传递给 Presenter
    • Presenter 可以根据需要显示此视图 - 例如popup、splitview、navigation child、modal 等 - 还可以进行其他 UI 更改(动画、标签切换等)
    • 当 UIView 本身被加载(在 UIViewController ViewDidLoad 中)时,MvxView 基类会加载 ViewModel 以供 View 使用。

    在您的示例中,听起来您可能想要专门化您的拆分视图之一,以便它包含一个 UINavigationController - 然后您希望您的 Presenter 将您的新视图传递给该 UINavigationController 以进行推送。

    这只是 C# 代码——它只是在你的 UI 项目中——你可以像“普通 MonoTouch”一样随意编写它。

    “高级”演示者的一个示例是会议示例 - 了解它如何将显示操作委托给选项卡栏 - https://github.com/slodge/MvvmCross/blob/vnext/Sample%20-%20CirriousConference/Cirrious.Conference.UI.Touch/ConferencePresenter.cs

    【讨论】:

    • 我提交自己的解决方案的那一刻,您发布了您的答案。简而言之:我的 splitview 使用 UINavigationControllers 进行推送,而不是设置新的 ViewControllers。
    【解决方案2】:

    我已经设法回答了我自己的问题。如果我的方法有误,请纠正我!

    我使用与 github 上的 MVVMCross 示例相同的设置。 我对 SplitViewController 做了一个小改动:

    1. 我创建了两个 UINavigationController,分别称为 _detailNav 和 _rootNav。
    2. UINavigationController 构造函数允许将 UIViewController 设置为 RootViewController。在此处设置一个 ViewController(在示例中:new EmptyViewController())。
    3. 更改调用的两个方法:SetPrimaryView 和 SetSecondaryView,使其使用 UINavigationController 更改 ViewControllers。

    例如,改变这个: this.ViewControllers = new UIViewController[] { 控制器,ViewControllers[1] };

    对此: _detailNav.PushViewController(controller, true);

    现在 _detailNav(一个 UINavigationController)用于更改视图,而不是在 SplitView 中设置新的 ViewControllers 数组。

    【讨论】:

    • 谢谢 - 很想看到一篇博文 - 可能有图片:)
    • 也 - 一些 xam 样本可能会有所帮助 - 例如blog.xamarin.com/2012/02/24/mwc_2012 应用程序
    • 我目前没有博客 :( 你的例子对我帮助很大!我在iOS和导航方面的问题是因为我没有做我的iOS作业。关于我的小知识ViewControllers、SplitViews 和 UINavigationControllers 对进一步理解 MVVMCross 有很大帮助。
    • 所以不喜欢我们在这里聊天 - 在 jabbr.net/#/rooms/mvvmcross 上聊天 - 但这里有问题 :)
    • 你可以随时给我发邮件给我,我会把它们作为访客帖子发布:)
    猜你喜欢
    • 2017-09-22
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 2017-12-19
    相关资源
    最近更新 更多