我使用的是故事板和AutoLayout。有两个场景,一个是我的主视图控制器,带有一个工具栏和几个UIBarButtonItems,另一个是一个UIViewController,应该只显示一个UILabel。当用户点击我的主视图控制器中的工具栏时,我用以下代码显示弹出窗口:
func presentPopover(viewCtrl: UIViewController, item: UIBarButtonItem) {
viewCtrl.modalPresentationStyle = .Popover
let popover: UIPopoverPresentationController = viewCtrl.popoverPresentationController!
popover.permittedArrowDirections = .Any
popover.barButtonItem = item
self.presentViewController(viewCtrl, animated: true, completion: nil)
}
helpView = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("HelpView“) as? HelpVC
if helpView != nil {
presentPopover(helpView!, helpButton)
}显示视图,但没有可见的子视图(UILabel)。同样奇怪的行为也会发生,当我设置故事板segues而不是从代码中进行popover演示时。然而,当我在我的UINavigationController上推送完全相同的视图时,一切都显示得很好。我是不是遗漏了什么?
致以最好的问候,奥利弗
发布于 2014-10-02 21:54:38
将大小调整为所需大小。如果传入的话,可以设置barbutton而不是sourceView。
if let controller = viewCtrl {
controller.preferredContentSize = CGSizeMake(200,25)
controller.modalPresentationStyle = UIModalPresentationStyle.Popover
if let popover = controller.popoverPresentationController {
popover.delegate = self
popover.sourceView = viewCtrl.view
popover.sourceRect = CGRectMake(0,-5, 50, 50)
popover.permittedArrowDirections = .Any
self.presentViewController(controller, animated: true, completion: nil)
}
}发布于 2017-04-20 18:55:31
最佳教程click here
UIPopoverPresentationControllerDelegate @IBAction func onClickMenu(_ sender: UIButton)
{
if btnMenu.isSelected
{
btnMenu.setImage(UIImage(named: "arrow_orange"), for: UIControlState.normal)
btnMenu.isSelected = false
self.dismiss(animated: true, completion: nil)
}
else
{
btnMenu.setImage(UIImage(named: "up_arrow_orange"), for: UIControlState.normal)
btnMenu.isSelected = true
let popMenu = MenuViewController(nibName: "MenuViewController", bundle: nil)
popMenu.modalPresentationStyle = UIModalPresentationStyle.popover
popMenu.preferredContentSize = CGSize.init(width: 320, height: 265)
popMenu.vcPush = self
self.present(popMenu, animated: true, completion: nil)
let popController : UIPopoverPresentationController = popMenu.popoverPresentationController!
popController.permittedArrowDirections = UIPopoverArrowDirection.up
popController.delegate = self
//popController?.barButtonItem = nil
popController.sourceView = self.view
popController.sourceRect = CGRect.init(x: 525, y: 30, width: 10, height: 10)
}
}最佳教程click here
https://stackoverflow.com/questions/25669664
复制相似问题