使用Popovers控件显示内容
popover控件可以用来在当前视图的上面显示内容,是一个轻量级显示内容,或者提供信息以供用户选择的方案。
例如:
- 显示splitView的一个panel,当iPad处于水平放置时;
- 在当前视图下提供给用户几个选择项
- 显示一个对象的相关信息;
- 提供一些工具选择,或者配置选项。

PopoverDemoView *pdv=[[PopoverDemoView alloc] initWithStyle:UITableViewStylePlain];
//pdv.modalInPopover = YES;
self.playPopoverController = [[[UIPopoverController alloc] initWithContentViewController:pdv] autorelease];
self.playPopoverController.delegate = self;
pdv.firstPopoverController = self.playPopoverController;
[self.playPopoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[pdv release];
实现Popover Delegate
当你点击popover外面时, popover会自动实现其委托,向委托发送popoverControllerShouldDismissPopover消息,然后向发送消息popovercontrollerDidDismissPopover。
大多情况下,你不应该重写 popoverControllerShouldDismissPopover方法。当然如果不重写,可能会使你的程序崩溃,那就重写吧。但是还是建议你避免那种情况的发生。
当委托方法调用 popovercontrollerDidDismissPopover方法时,popover已经从屏幕消失了,如果不再使用你可以在此释放它,在此,你还能做的有刷新界面,从新设置程序状态。
使用popovers的几点建议:
- 使popover消失需要一个指针,更多的时候你会将这个指针放到popover的内容视图当中,这样可以响应内容视图中的事件;
- 缓存常用的popover controllers,尽量重用。popover可以很轻松的被重用,当内存紧张的时候也混容易被释放;
- 当显示一个popover时,如果设置了UPPopoverArrowDirectionAny,那么系统会灵活的设置内容视图的大小。

浙公网安备 33010602011771号