【问题标题】:iPad split controller that doesn't hide the left pane in portraitiPad拆分控制器不会纵向隐藏左窗格
【发布时间】:2011-07-30 02:06:48
【问题描述】:

我正在尝试在 iPad 上实现像 UISplitViewController 这样的拆分视图控制器,但我不希望在设备处于纵向时隐藏左窗格。

所以我在 IB 中为此创建了一个 UIViewController 子类,它可以在没有任何子视图控制器的情况下正常工作。现在,我正试图围绕设置和管理左右窗格的两个 UIViewController 对象所需的内容。在我的应用中,它们都将是 UINavigationController,其中包含一个 UITableView。

我在如何设置这个问题上遇到了一个心理障碍,希望有人能给我一些示例代码或给我一个关于架构的建议......

【问题讨论】:

标签: ipad


【解决方案1】:

使用 UISplitView 控制器的唯一原因是它可以免费为您提供显示/隐藏逻辑。我认为简单地将两个视图控制器(根视图和详细视图)放在标准 UIViewController 上会容易得多。然后,您可以更直接地管理它们,而不会覆盖已实现控制器的预期行为。

iPad 上的设置应用程序可以满足您的需求,我相信这就是该应用程序采用的方法。

祝你好运!

【讨论】:

    【解决方案2】:

    setHidesMasterViewInPortrait 仍然是私有 Api,应用会被拒绝吗?

    【讨论】:

      【解决方案3】:

      创建你的 UISplitViewController 实例,然后调用:

       [splitViewController setHidesMasterViewInPortrait:NO];
      

      编译器会给你一个警告信息,但它会做你想做的事。您可以通过在 UISplitViewController 上创建一个实现该方法的类别来消除编译器警告。

      【讨论】:

      • 这会起作用,但如果您的应用提交到 App Store,将会被拒绝。 setHidesMasterViewInPortrait: 是“私有的”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多