gpt4 book ai didi

ios - 如何在 iOS 7 上使用带有通用 Storyboard 的弹出窗口转场?

转载 作者:技术小花猫 更新时间:2023-10-29 10:54:11 27 4
gpt4 key购买 nike

我正在从硬编码布局转移到 Xcode 6 中可用的新通用 Storyboard系统。能够创建一个 Storyboard,通过自动布局的魔力,可以在两者上工作,这真是太棒了iPhone 和 iPad。我的理解是通用 Storyboard向后兼容 iOS 7。

但是,我在使用 popover segues 时遇到了问题。在 iOS 8 上,新的“Present as Popover”segue 将在 iPad 界面上显示为弹出窗口,在 iPhone 界面上显示为模态视图 Controller 。这正是我想要的行为,但是当我在 iOS 7 上运行我的通用 Storyboard时,每当我尝试 popover segue 时,应用程序都会崩溃。这是我收到的错误消息:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'-[UIPopoverController initWithContentViewController:] called when not
running under UIUserInterfaceIdiomPad.'

这有点烦人,因为我不想为每个 UI 惯用法求助于单独的 Storyboard。

看起来这些是我的选择:

  • 创建 UIStoryboardSegue 的子类,它将在 iPad 上显示弹出窗口,在 iPhone 上显示模态视图。这需要在我的应用程序中手动更改所有 popover segues 的类。
  • 为每个条形按钮项目、表格单元格等创建两个 segue - 一个是纯“Popover”segue,另一个是纯“Modal”segue。在这种情况下,我将无法仅通过控制拖动到下一个屏幕,并且必须创建自定义操作方法,以根据当前 UI 习惯用法调用正确的 segue。
    • 放弃通用 Storyboard 并创建特定于设备的 Storyboard ,直到我可以要求我的用户使用 iOS 8。

这些都不是很好的选择,所以我想知道:我还有其他选择吗?我提出的解决方案是否遗漏了任何问题?

最佳答案

Xcode 6 支持统一的 Storyboard。 Storyboard可以根据显示 View Controller 的大小类添加或删除 View 和布局约束。您可以为多个大小类制作一个 Storyboard,而不是维护两个独立(但相似)的 Storyboard。

但是 Size 类是基于 iOS8 支持的 UITraitCollection。这就是它在 iOS7 上崩溃的原因。

关于ios - 如何在 iOS 7 上使用带有通用 Storyboard 的弹出窗口转场?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26221887/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com