继承于UIPresentationController,功能同UIPopoverController,适用于ios8以后
相关属性和方法
delegate--代理,同UIPopoverController
permittedArrowDirections,箭头方向
sourceView -- 箭头位置参照的view
sourceRect -- 参照的区域
barButtonItem --如果设置该值,则不用设置sourceView和sourceRect
canOverlapSourceViewRect-- 是否能覆盖参照区域
passthroughViews --弹出菜单后能继续进行交互的view
backgroundColor--菜单背景色
popoverLayoutMargins--菜单位置,目前不会用。。。。
popoverBackgroundViewClass--- 自定义菜单背景
使用方式
UIPopoverPrestationController是控制器自带的一个属性,须从控制器中获取
//创建内容控制器
OneViewController*oneCtr = [[OneViewController alloc] init];
//设置内容控制器的宽高
oneCtr.preferredContentSize = CGSizeMake(100, 400);
//设置控制器的模态方式为popover
oneCtr.modalPresentationStyle = UIModalPresentationPopover;
//获取UIPopoverPrestationController
UIPopoverPresentationController *presentationCtr = [oneCtr popoverPresentationController];
//箭头方向
presentationCtr.permittedArrowDirections = UIPopoverArrowDirectionLeft;
//设置箭头的参照veiw和区域
presentationCtr.sourceRect = sender.bounds;
presentationCtr.sourceView = sender;
//设置代理
presentationCtr.delegate = self;
//设置弹出菜单后,能继续进行交互的view
presentationCtr.passthroughViews = @[self.hiddenBtn];
//如果要自定义弹出框,需要以下这个
// presentationCtr.popoverBackgroundViewClass = [CustomPopoverBackgroundView class];
[self presentViewController:oneCtr animated:YES completion:nil];