Sha*_*aik 5 uipopovercontroller ios uipopover uipopoverpresentationcontroller
我无法将popover控制器显示为iPhone中的popover,而它在iPad上运行良好.
关于如何在iPhone中做到这一点的任何想法.
据我搜索,我找不到任何东西.
无论如何要使弹出窗口出现在iphone中,因为它在iPad中受到赞赏!
mat*_*att 11
在呈现之前将自己设置为popover视图控制器的委托,并实现委托方法adaptivePresentationStyle(for:traitCollection:)返回.none.这将导致popover停止在iPhone上作为全屏呈现的视图控制器进行调整,并变成像iPad上的实际弹出窗口.
这是一个完整的工作示例,它显示弹出按钮以响应按钮点击:
class ViewController: UIViewController {
@IBAction func doButton(_ sender: Any) {
let vc = MyPopoverViewController()
vc.preferredContentSize = CGSize(400,500)
vc.modalPresentationStyle = .popover
if let pres = vc.presentationController {
pres.delegate = self
}
self.present(vc, animated: true)
if let pop = vc.popoverPresentationController {
pop.sourceView = (sender as! UIView)
pop.sourceRect = (sender as! UIView).bounds
}
}
}
extension ViewController : UIPopoverPresentationControllerDelegate {
func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
return .none
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1824 次 |
| 最近记录: |