在iOS 8.0中,Apple引入了UIAlertController来取代UIActionSheet . 不幸的是,Apple没有添加任何有关如何呈现它的信息 . 我在hayaGeek 's blog, however, it doesn'上找到了关于它的entry似乎可以在iPad上运行 . 视图完全错位:
错位:
正确:
我使用以下代码在界面上显示它:
let alert = UIAlertController()
// setting buttons
self.presentModalViewController(alert, animated: true)
还有其他方法可以为iPad添加它吗?或者苹果只是忘了iPad,还是没有实现?
6 回答
在Swift 2中,你想做这样的事情来在iPhone和iPad上正确显示它:
如果您未设置演示者,则最终会在
-[UIPopoverPresentationController presentationTransitionWillBegin]
上的iPad上出现例外情况,并显示以下消息:Update for Swift 3.0 and higher
在iPad上,警报将使用新的_289656显示为弹出窗口,它要求您使用sourceView和sourceRect或barButtonItem为弹出窗口的表示指定锚点
barButtonItem
sourceView
sourceRect
为了指定锚点,您需要获取对UIAlertController的UIPopoverPresentationController的引用,并设置其中一个属性,如下所示:
示例代码:
您可以使用
UIPopoverPresentationController
从弹出框中显示UIAlertController
.在Obj-C中:
这是一个快速的解决方案:
2018年更新
我刚刚因为这个原因拒绝了应用程序,并且很快就解决了从使用操作表到警报的过程 .
工作了一个魅力,并通过App Store测试员就好了 .
对于每个人来说可能不是一个合适的答案,但我希望这能帮助你们中的一些人迅速摆脱困境 .