我想在我的视图加载后立即在 iPad 上显示一个弹出窗口,并将右上角的按钮作为源。弹出窗口在按钮点击时正确显示,但是当页面首次加载时,我无法找到一种在没有按钮点击的情况下显示它的方法。这可能吗?
这就是我所拥有的:
func displayOptions(sourceButton: UIBarButtonItem)
let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
if let popoverController = actionSheet.popoverPresentationController {
var rect = CGRect(x: 0, y: 0, width: 0, height: 0)
popoverController.barButtonItem = sourceButton
popoverController.sourceRect = rect
popoverController.permittedArrowDirections = .up
}
viewController.present(actionSheet, animated: true, completion: nil)
}
此代码在按钮点击时正常工作,但如果我尝试从 viewDidLoad 或 viewDidAppear 调用此函数,应用程序会崩溃:
您必须通过警报控制器的 popoverPresentationController 提供此弹出窗口的位置信息。您必须提供 sourceView 和 sourceRect 或 barButtonItem。