我想在视图加载后立即在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。
我想在视图加载后立即在iPad上显示一个弹出窗口,在右上角有一个按钮作为源。点击按钮后,弹出窗口会正确显示,但是我很难找到一种方法......>
您需要提供sourceView
。添加以下行并执行!
popoverController.sourceView = self.view //to set the source of your alert