【iOS开发-106】UIPopoverController,[UIPopoverController dealloc] reached while popover is still visible
来源:互联网 发布:java非运行异常有哪些 编辑:程序博客网 时间:2024/06/15 13:23
(1)UIPopoverController是iPad特有的弹框类似的类,它没有视图,因为直接继承自NSObject,所以在初始化的时候需要设置内容控制器。如下:
-(UIPopoverController *)titlePop{ if (_titlePop==nil) { UITableViewController *tableVc=[[UITableViewController alloc]init]; _titlePop=[[UIPopoverController alloc]initWithContentViewController:tableVc]; } return _titlePop;}
(2)UIPopoverController有2种使用方法,一种是围绕BarButtonItem的,一种是围绕Rect的,当然Rect的范围很广。如下:
-(void)menuClick:(UIBarButtonItem *)sender{ //直接围绕BarButtonItem的 [self.menuPop presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];}-(void)titleClick:(UIButton *)btn{ //注意rect和inView的关系 [self.titlePop presentPopoverFromRect:btn.frame inView:btn.superview permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; //[self.titlePop presentPopoverFromRect:btn.bounds inView:btn permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];}
(3)UIPopoverController还有一些其他属性,比如是否可见等。
//还有以下方法。设置内容视图控制器//[self.menuPop setContentViewController:nav animated:YES]; //设置popover大小//[self.menuPop setPopoverContentSize:CGSizeMake(100, 100)];//self.menuPop.popoverContentSize=CGSizeMake(100, 100); //设置点击时,popover不消失(默认是点击popover外的任何地方就消失)//[self.menuPop setPassthroughViews:@[self.btn]];//self.menuPop.passthroughViews=@[self.btn];
当然,最实用的就是上面的那个设置大小的属性,但是如果设置大小需要在内容视图控制器中设置呢?就不能实用setPopoverContentSize,需要用到如下的属性:
self.preferredContentSize=CGSizeMake(100, 100);
(4)解决方案:-[UIPopoverController dealloc] reached while popover is still visible.
原因:创建的popover控制器是局部变量,一个花括号执行完毕{}就销毁了,所以会出现问题。
解决办法:把局部变量变成全局变量即可。定义如下,然后使用的时候用self.helloPop即可:
@interface ViewController ()@property(nonatomic,strong) UIPopoverController *helloPop;@end
注意:在iOS8中已经不会出现这个错误,即只是在花括号中定义的局部变量,但是不会报错。这个错误一般是在iOS7及以下系统。
1 0
- 【iOS开发-106】UIPopoverController,[UIPopoverController dealloc] reached while popover is still visible
- [UIPopoverController dealloc] reached while popover is still visible.'
- [UIPopoverController dealloc] reached while popover is still visible
- UIPopoverController iOS
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- UIPopoverController
- ios-day25-02(iPad开发之UIPopoverController)
- 【iOS学习】----UIPopoverController
- iOS UIPopoverController的使用
- ffmpeg开发指南
- RAC DBCA 找不到共享磁盘
- 为Eclipse添加Java和Android SDK源代码
- Spark API编程动手实战-01-以本地模式进行Spark API实战map、filter和collect
- JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解
- 【iOS开发-106】UIPopoverController,[UIPopoverController dealloc] reached while popover is still visible
- 基于DLNA的UPNP协议的分析及实现
- 搭建rac时,DNS检查失败
- python中的异常
- RAC not open OCR/CRS/controlfile 故障
- HttpClient使用详解
- PMP考试六大管理学定律
- boa服务器移植使用
- Android 文件下载