如何在iOS13的iPad上以iPhone风格展示操作表(actionSheet)?

4

了解问题背景:

在iPad上的中,当我使用.actionSheet作为UIAlertController的类型时,它会显示为弹出窗口。此外,需要设置一个sourceRectsourceView,否则就会崩溃。

但是,当我在被呈现为formSheet/pageSheet/popover的视图控制器中呈现这样的警报时,警报将不需要sourceRect/sourceView,并且将呈现为iPhone样式的操作表(但不是像在iPad上应该是一个弹出窗口)。它看起来像这样:enter image description here

iOS 13发生了什么:

iOS13中,这种行为已经改变了。上述情况现在会崩溃,并要求sourceRect/sourceView,正如在iPad上通常发生的那样。也就是说,即使在formSheet/pageSheet/popover VC中呈现警报,它仍将需要sourceRect/sourceView,并且现在将呈现为弹出窗口(而不是iPhone样式的操作表)。

问题:

如果有人知道如何保持警报在相同的操作表样式(但不是弹出窗口)下呈现,我将非常感激。

更新:显然这个问题始于iOS13.2(而不是13.0)


我还没有找到一种方法来实现这个。看起来他们只是撤回了在一个呈现的视图控制器内部显示警报的功能。我猜这可能是一个漏洞/边缘情况,他们已经关闭了它。 - matt
@matt明白了,谢谢分享。很高兴听到我不是唯一遇到这个问题的人。但很遗憾他们删除了这个“功能”。 - Tung Fam
1个回答

0

iOS 13.2之后,无法实现所需的行为。


这个在发布说明中吗? - pfandrade
@pfandrade 不是的。因为之前也从来没有被视为一个“功能”。所以他们没有删除他们承诺拥有的东西。 - Tung Fam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接