【问题标题】:How to go about UINavigationController vs UISplitViewController in universal apps?如何在通用应用程序中处理 UINavigationController 与 UISplitViewController?
【发布时间】:2014-10-10 01:19:47
【问题描述】:

我有一个加载表格视图的 UINavigationController。单元将详细视图控制器推送到屏幕上。现在我的应用程序变得通用了,我对如何在 iPad 上使用 UISplitViewController 感到困惑。

Apple 推荐的在 iPad 上为 iPhone UINavigationController 实现 UISplitViewController 的方法是什么?代码如何知道它应该在 iPad 上加载 UISplitViewController 而在 iPhone 上忽略它?

这是我在guide 中找到的:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
     // The device is an iPad running iOS 3.2 or later.
}
else {
     // The device is an iPhone or iPod touch.
}

但是,这真的是有条件地加载 iPad UI 与 iPhone UI 的方式吗? 我不使用 IB 或 Nibs。

【问题讨论】:

  • 此链接可能有帮助。 here

标签: ios ios7 uinavigationcontroller uisplitviewcontroller


【解决方案1】:

从 iOS8 开始,强烈建议您在这两种情况下都使用拆分视图控制器。系统会担心你在紧凑型设备上的表现(因此它会推送详细视图控制器而不是在拆分视图控制器中显示它)。

此功能仅适用于 iOS8。如果您需要支持较旧的操作系统,则需要将视图拆分为多个故事板或 XIB 文件,并在运行时查询用户界面惯用语并决定加载哪个以及如何执行特定任务。

【讨论】:

  • 实际上,您可以在 Storyboard 中实现 UISplitViewController,它将向后兼容 iOS 7、iPad 和 iPhone。 Xcode 自动为设备和操作系统生成适当的实现。它目前有问题(beta 5)。
  • 我不明白这将如何工作。你仍然需要做很多改变。可能是为什么它这么有问题。苹果为什么要为此烦恼?
  • 如果您只有一个简单的拆分视图,它应该可以很好地工作,但如果您需要自定义其行为,那么同时支持操作系统和所有设备无疑会更加棘手。不过,我在我的应用程序中广泛使用它,它运行良好,但我希望 Apple 会在不久的将来解决一些主要问题。
猜你喜欢
  • 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
相关资源
最近更新 更多