【问题标题】:IPad Split View Implement in Another ViewiPad 拆分视图在另一个视图中实现
【发布时间】:2023-03-19 12:50:01
【问题描述】:

我正在创建一个 iPad 应用程序,它有多个视图来加载数据,但对于一个视图,我需要添加拆分视图。我不需要在其他视图中拆分视图。它们只是详细信息页面。我通过网络搜索,发现了很多基于 iPad 拆分视图的教程。但问题是他们都将项目创建为拆分视图项目,或者他们创建了一个窗口基础应用程序并将滑动视图添加到委托。我不需要这样做,我只需要为一个视图实现这个拆分视图。有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: ios uisplitviewcontroller ipad uisplitview


    【解决方案1】:

    您可以在导航控制器中添加拆分视图。 即使拆分视图是一个容器视图控制器,并且 Apple 在文档中建议所有容器不应嵌入其他容器中,在导航控制器中添加拆分视图也可以正常工作,而且我从未注意到这样做有任何副作用。

    基本上你应该做的是: - 在应用程序委托中创建一个 UINavigationController 并将其用作应用程序窗口的根视图 - 如果您不想看到导航控制器导航栏,请隐藏它(显示顶部带有主导航栏的拆分视图并不好看......) - 然后在导航栏中添加您的视图控制器。

    示例:假设您有这个应用程序视图序列:

    第一视图(完整视图 = 详细信息页面) 第二视图(拆分视图) 第三视图(完整 = 详细页面)

    因此您可以将 FIRST 和 THIRD 表示为标准视图控制器(全屏),而 SECOND 将是一个拆分视图。您的应用将通过创建主导航控制器、在其上添加 FIRST 作为顶部控制器并使用主导航控制器作为窗口的根视图来初始化。

    如果您不想要推荐的推送/弹出方法,则可以使用导航控制器推送、弹出方法在这些视图之间切换或直接更改导航控制器“viewControllers”数组。

    如果您需要根据顶部视图的类型向导航控制器添加特殊行为,只需将您的应用委托注册为导航控制器委托(如果您不想这样做,也可以注册一个“主控制器”对象)使您的应用程序委托复杂化)。

    【讨论】:

      【解决方案2】:

      我不是 100% 确定,但在我看来,您不能只在视图层次结构中的某个位置使用 SplitView。

      Apple 打算使用 SplitViewController 作为顶级控制器。它的左侧可以包括带有导航控制器的向下钻取机制,因此您可以向下钻取层次结构,右侧将显示您在左侧选择的项目的详细信息。

      如果您需要一个包含某种拆分机制的视图,您可能必须自己编写代码。甚至更好:找到可以在 UI 中使用的其他机制。

      您现在如何切换视图层次结构?也许您可以将现有的 UI 集成到 SplitViewController 中?

      【讨论】:

      • 我现在使用 facebook 风格的侧边栏导航到其他视图。并且一个视图必须包含这个拆分视图。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多