iOS开发中UIPopoverController的使用详解

2020-01-14 17:18:36王旭

    YYMenuViewController *menuVc=[[YYMenuViewController alloc]init];
    
    //2.新建一个popoverController,并设置其内容控制器
    self.popover=[[UIPopoverController alloc]initWithContentViewController:menuVc];
    
    //3.设置尺寸
    self.popover.popoverContentSize=CGSizeMake(300, 200);
    
    //4.显示
    [self.popover presentPopoverFromBarButtonItem:self.navigationItem.leftBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
@end


实现效果如下图:

 

iOS开发中UIPopoverController的使用详解

说明:在storyboard中添加了导航控制器,并添加了两个按钮。

iOS开发中UIPopoverController的使用详解

三、常见报错

在popover的使用过程中,经常会遇到这个错误

复制代码
  -[UIPopoverController dealloc] reached while popover is still visible.
错误的大体意思是:popover在仍旧可见的时候被销毁了(调用了dealloc)

 

从错误可以得出的结论

  当popover仍旧可见的时候,不准销毁popover对象

  在销毁popover对象之前,一定先让popover消失(不可见)  

如:在上述代码中,如果不适用全局变量popover,那么将会出现上面的错误。

四、设置尺寸
提示:不建议,像下面这样吧popover的宽度和高度写死。

复制代码
//1.新建一个内容控制器
    YYMenuViewController *menuVc=[[YYMenuViewController alloc]init];