gpt4 book ai didi

ios - 用于关闭由 UIPopoverPresentationController 呈现的 View Controller 的 UI,无论 Size Class 是什么

转载 作者:行者123 更新时间:2023-11-30 14:17:14 24 4
gpt4 key购买 nike

我有一个通用应用程序,Xcode 7 Beta,针对 iOS 8。

我正在使用 UIPopoverPresentationController 呈现一个 View Controller 。

当以任何常规尺寸类(例如,任何方向的全屏 iPad)呈现时, View Controller 将显示为弹出窗口,尺寸为我在 preferredContentSize 属性中设置的尺寸。在 View Controller 边界之外点击将关闭弹出窗口。

当以紧凑宽度尺寸类别(例如任何纵向的 iPhone)呈现时,“弹出窗口”将变成全屏 View ,从底部滑入顶部。

问题

虽然 iPad 弹出窗口具有内置的关闭行为(即点击弹出窗口外部),但全屏呈现的“弹出窗口”却没有。因此需要一些 UI 来为用户提供一种关闭弹出窗口的方法。

问题

呈现 UI 的最佳(推荐?)方式是什么,使其仅针对紧凑宽度尺寸类出现,以便为用户提供关闭(全屏)“弹出窗口” View Controller 的选项?

讨论

我见过的一种方法是将[要呈现的 View Controller ]嵌入UINavigationController中。导航栏上添加了一个栏按钮,通过其导出我们可以告诉呈现的 View Controller 关闭呈现。

但是,这不仅需要为 iPad 上简单呈现的 View Controller 提供额外的、不需要的层次结构,而且还需要在 viewDidLoad 中进行环境检查(习语?大小类?)以编程方式隐藏如果使用常规宽度尺寸类(例如 iPad),则为 NavigationBar。这让我觉得……脆弱。

另一种选择是执行上述操作,但使用 Interface Builder 中的 Size Class 以非编程方式安装/卸载导航元素。

想法?

相关链接,discussing the detection of popover mode

最佳答案

看看Interface Builder,您可以根据应用程序当前运行的Size Class提供任何 View :)如果我没记错的话(因为我现在无法检查,因为我在公交车上)您可以指定所选 View 的“属性检查器”选项卡中特定尺寸类中可用的 View 。这样,您只需添加一个按钮或一个导航栏,其中包含 View 中的项目,并使其仅适用于紧凑宽度:)我今天将进行更具体的检查,为您提供一些屏幕截图:)

关于ios - 用于关闭由 UIPopoverPresentationController 呈现的 View Controller 的 UI,无论 Size Class 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30972607/

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