iOS8 上的 UIActionSheet
UIActionSheet on iOS8
我有一个连接到 Chromecast 的应用程序 - 我引用了 Chromecast 示例代码,它使用 UIActionSheet
显示我可以连接到的 Chromecast 设备列表。
这对我的 运行 BaseSDK=iOS6.1
应用运行良好。最近我尝试升级到 BaseSDK=iOS8.1
,但 UIActionSheet
不再显示。
我知道它在 iOS8 中已被弃用,但这是否意味着它不再有效?我认为弃用的方法通常需要一些时间才能 "phase out".
所以我的主要问题是:-
- 我还能只使用 UIActionSheet 吗?是否只是更改视图层次结构的问题,这就是我的 ActionSheet 不再显示的原因?
- 如果问题 1 的答案是否定的,我该怎么做才能同时兼容 iOS7 和 iOS8。
使用 iOS8.1 sdk UIActionSheet 已弃用,您应该进行运行时检查以查看它是否可用并使用正确的 class:
进行相应操作
if objc_getClass("UIAlertController") != nil {
// UIAlertController is available use it with style UIAlertControllerStyleActionSheet
} else {
// no UIAlertController use regular old action sheet
}
对于 iOS8 和上面的你,你必须迁移到 UIAlertController
来执行操作 sheet 和弹出警报。
老实说,我发现新的 API 更易于使用。还有一点 here(在 Swift 中,但在 Objective C 中并不难)。
我有一个连接到 Chromecast 的应用程序 - 我引用了 Chromecast 示例代码,它使用 UIActionSheet
显示我可以连接到的 Chromecast 设备列表。
这对我的 运行 BaseSDK=iOS6.1
应用运行良好。最近我尝试升级到 BaseSDK=iOS8.1
,但 UIActionSheet
不再显示。
我知道它在 iOS8 中已被弃用,但这是否意味着它不再有效?我认为弃用的方法通常需要一些时间才能 "phase out".
所以我的主要问题是:-
- 我还能只使用 UIActionSheet 吗?是否只是更改视图层次结构的问题,这就是我的 ActionSheet 不再显示的原因?
- 如果问题 1 的答案是否定的,我该怎么做才能同时兼容 iOS7 和 iOS8。
使用 iOS8.1 sdk UIActionSheet 已弃用,您应该进行运行时检查以查看它是否可用并使用正确的 class:
进行相应操作 if objc_getClass("UIAlertController") != nil {
// UIAlertController is available use it with style UIAlertControllerStyleActionSheet
} else {
// no UIAlertController use regular old action sheet
}
对于 iOS8 和上面的你,你必须迁移到 UIAlertController
来执行操作 sheet 和弹出警报。
老实说,我发现新的 API 更易于使用。还有一点 here(在 Swift 中,但在 Objective C 中并不难)。