【问题标题】:UIActionSheet on iOS8iOS8 上的 UIActionSheet
【发布时间】:2015-02-26 15:52:35
【问题描述】:

我有一个连接到 Chromecast 的应用程序 - 我引用了 Chromecast 示例代码,它使用 UIActionSheet 来显示我可以连接的 Chromecast 设备列表。

这适用于我的应用程序,该应用程序一直使用 BaseSDK=iOS6.1 运行。最近我尝试升级到BaseSDK=iOS8.1,但UIActionSheet 不再显示。

我知道它在 iOS8 中已被弃用,但这是否意味着它不再工作了?我认为不推荐使用的方法通常需要一些时间才能“逐步淘汰”。

所以我的主要问题是:-

  1. 我还能只使用 UIActionSheet 吗?是否只是视图层次结构发生了变化,这就是我的 ActionSheet 不再显示的原因?
  2. 如果问题 1 的答案是否定的,我该怎么做才能同时兼容 iOS7 和 iOS8。

【问题讨论】:

    标签: ios ios7 ios8 chromecast uiactionsheet


    【解决方案1】:

    iOS8.1 sdk UIActionSheet 已弃用,您应该进行运行时检查以查看它是否可用并使用正确的类采取相应措施:

        if objc_getClass("UIAlertController") != nil {
    // UIAlertController is available use it with style UIAlertControllerStyleActionSheet
        } else {
    // no UIAlertController use regular old action sheet
        }
    

    【讨论】:

      【解决方案2】:

      对于 iOS8 和更高版本,您必须迁移到 UIAlertController 以获取操作表和警报弹出窗口。

      老实说,我发现新 API 更易于使用。还有一点 here (在 Swift 中,但在 Objective C 中并不难)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多