我尝试通过创建一个新的视图控制器并在另一个视图控制器中将其作为popover呈现在swift 3中的popover,我已经看过很多教程但是这段代码似乎没有在swift 3上工作。任何人都可以帮忙?它似乎在App委托文件中给我一个错误。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "popoverInfo" {
let popoverVC = segue.destination
popoverVC.modalPresentationStyle = UIModalPresentationStyle.popover
popoverVC.popoverPresentationController!.delegate = self
}
}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.none
}
答案 0 :(得分:0)
你可以实现这样的弹出:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "popoverInfo" {
segue.destination.modalPresentationStyle = .popover
if let popover = segue.destination.popoverPresentationController {
popover.delegate = self
popover.sourceRect = // CGRect
popover.sourceView = // UIView
popover.permittedArrowDirections = .any
popover.canOverlapSourceViewRect = // Bool
}
}
然而,Popovers将像iPhone上的普通模态一样。弹出窗口仅适用于iPad。 (有一些方法可以破解它,但我不知道苹果是否会批准)
此代码改编自我目前正在处理的项目,让我知道它是否对您不起作用,我可以再看看。