Swift PopOverController自定义大小和sourceRect不起作用
添加了一个bar按钮,单击bar按钮后,将显示tableview。在我的实现中有两个问题 首先,我无法用我的Swift PopOverController自定义大小和sourceRect不起作用,swift,Swift,添加了一个bar按钮,单击bar按钮后,将显示tableview。在我的实现中有两个问题 首先,我无法用我的BarButtonItem 其次,TableView将全屏显示,而不是我定义的自定义大小 let button = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.refresh, target: self, action: #selector(displayClassRooms(_:))) navigatio
BarButtonItem
其次,TableView
将全屏显示,而不是我定义的自定义大小
let button = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.refresh, target: self, action: #selector(displayClassRooms(_:)))
navigationItem.rightBarButtonItem = button
@objc private func displayClassRooms(_ sender: UIBarButtonItem) {
let popController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ClassRoomVC")
popController.modalPresentationStyle = UIModalPresentationStyle.popover
popController.popoverPresentationController?.sourceView = self.view
popController.popoverPresentationController?.permittedArrowDirections = .up
popController.popoverPresentationController?.sourceRect = CGRect.init(x: 300, y: 0, width: 50, height: 180 )
popController.preferredContentSize = CGSize.init(width: 200, height: 200)
present(popController, animated: true, completion:nil)
}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
将
UIPopoverPresentationControllerDelegate
分配给您的控制器类
设置popController委托
let popoverContentController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ClassRoomVC")
popoverContentController?.modalPresentationStyle = .popover
if let popoverPresentationController = popoverContentController?.popoverPresentationController {
popoverPresentationController.permittedArrowDirections = .up
popoverPresentationController.sourceView = self.view
popoverPresentationController.sourceRect = CGRect.init(x: 300, y: 0, width: 50, height: 180 )
popoverPresentationController.delegate = self
if let popoverController = popoverContentController {
present(popoverController, animated: true, completion: nil)
}
}
是的,我已经在我的课堂上添加了
UIPopoverPresentationControllerDelegate
,但是是同一个问题。现在发生了什么,请告诉我。我在问题中报告的同一个问题,popover仍然显示在全屏上。我在我这边试过,效果很好,但这里我从按钮框中取出一个按钮和pop控制器作为源矩形试着这样做,让我知道它是否有效?是的,当然,等等。