使用Popovers控件显示内容

popover控件可以用来在当前视图的上面显示内容,是一个轻量级显示内容,或者提供信息以供用户选择的方案。

例如:

 

  1. 显示splitView的一个panel,当iPad处于水平放置时;
  2. 在当前视图下提供给用户几个选择项
  3. 显示一个对象的相关信息;
  4. 提供一些工具选择,或者配置选项。

 

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的几点建议:

  1. 使popover消失需要一个指针,更多的时候你会将这个指针放到popover的内容视图当中,这样可以响应内容视图中的事件;
  2. 缓存常用的popover controllers,尽量重用。popover可以很轻松的被重用,当内存紧张的时候也混容易被释放;
  3. 当显示一个popover时,如果设置了UPPopoverArrowDirectionAny,那么系统会灵活的设置内容视图的大小。

 

 

 

 

posted @ 2010-04-02 14:33  真相天下  阅读(1454)  评论(0)    收藏  举报