popoverController是iPad开发中常见的一种控制器(在iPhone上不允许使用)
跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController
它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面
在另一篇博客《自定义美团的导航栏》中便使用到了popoverController来显示菜单分类和城市选择。
1、使用步骤
(1)设置内容控制器
由于UIPopoverController直接继承自NSObject,不具备可视化的能力。因此UIPopoverController上面的内容必须由另外一个继承自UIViewController的控制器来提供,这个控制器称为“内容控制器”
(2)设置内容的尺寸
显示出来占据多少屏幕空间
(3)显示
- (void)createCategoryPopver{
//需要显示的控制器
PopViewController *pvc = [[PopViewController alloc]init];
//创建popoverController
UIPopoverController *pop = [[UIPopoverController alloc]initWithContentViewController:pvc];
//设置尺寸
self.pop.popoverContentSize=CGSizeMake(300, 200);
//点击navigationItem的leftBarButtonItem 显示popoverController
[pop presentPopoverFromBarButtonItem:
self.navigationItem.leftBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
2、popoverController使用注意
(1)通过UIBarButtonItem显示
- (void)presentPopoverFromBarButtonItem:(UIBarButtonItem *)item permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated;
//item :围绕着哪个UIBarButtonItem显示
//arrowDirections :箭头的方向
//animated :动画
(2)围绕着某一块特定区域显示
- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated;