代码说明:
复制代码
.......
//5.设置代理
self.popover.delegate=self;
}
#pragma mark-代理方法
//popoverController消失的时候调用
-(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
}
//popoverController的位置改变的时候调用(如竖屏变横屏)
-(void)popoverController:(UIPopoverController *)popoverController willRepositionPopoverToRect:(inout CGRect *)rect inView:(inout UIView *__autoreleasing *)view
{
}
//用来决定用户点击了蒙版后,popoverController是否可以dismiss,返回YES代表可以,返回NO代表不可以
-(BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
return NO;
}
七、防止点击UIPopoverController区域外消失
默认情况下
只要UIPopoverController显示在屏幕上,UIPopoverController背后的所有控件默认是不能跟用户进行正常交互的
点击UIPopoverController区域外的控件,UIPopoverController默认会消失
要想点击UIPopoverController区域外的控件时不让UIPopoverController消失,解决办法是设置passthroughViews属性
复制代码@property (nonatomic, copy) NSArray *passthroughViews;
这个属性是设置当UIPopoverController显示出来时,哪些控件可以继续跟用户进行正常交互。这样的话,点击区域外的控件就不会让UIPopoverController消失了
代码示例:
复制代码- (IBAction)buttonClick:(UIButton *)sender {
//1.新建一个popoverController并设置其内容控制器
YYMenuViewController *menuVc=[[YYMenuViewController alloc]init];
self.popover=[[UIPopoverController alloc]initWithContentViewController:menuVc];
//设置过滤掉一些控件
self.popover.passthroughViews=@[self.switchview];
//2.显示
//2.1第一种方式
// [self.popover presentPopoverFromBarButtonItem:<#(UIBarButtonItem *)#> permittedArrowDirections:<#(UIPopoverArrowDirection)#> animated:<#(BOOL)#>];










