3

我们是否必须在 iOS8 中使用 UIAlertController 或者我们仍然可以使用 UIActionSheet?

我不希望对 iOS 8 兼容性的代码进行大量更改,但是在 iPad 上使用 UIActionSheet 时遇到了几个问题。

例如,我在使用 UIActionSheet 时遇到了这个异常:

UIPopoverPresentationController (<_UIAlertControllerActionSheetRegularPresentationController: 0x7c57bf90>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.

我知道最好使用新的 UIAlertController,但是为了继续使用 UIActionSheet,是否有任何解决方法?

同样在 UIActionSheet 实际显示的地方(无一例外)它包含一个箭头 + 它不像以前那样居中(iOS7) - 我正在使用 showInView (也尝试使用 showFromRect 但得到相同的结果)。

4

1 回答 1

0

从文档中可以清楚地看出 UIActionSheet 已被弃用。意味着您仍然可以使用它,但将来可能会失败或将被完全删除。

我强烈建议您更新到 UIAlertController。

您在 iPad 上遇到的例外情况很明显。由于具有 actionSheet 样式的 UIAlertController 需要 sourceView(将显示来自实际控制器的视图),因为它不再是全屏(就像在 iPhone 上一样)。

于 2018-06-03T14:37:35.713 回答