<span style="font-size:18px;color:#3333ff;background-color: rgb(255, 255, 255);">UIViewController<span style="margin: 0px; padding: 0px; ">*</span> vCtrl <span style="margin: 0px; padding: 0px; ">=</span> <span style="margin: 0px; padding: 0px; ">[</span><span style="margin: 0px; padding: 0px; ">[</span>UIViewController alloc<span style="margin: 0px; padding: 0px; ">]</span> init<span style="margin: 0px; padding: 0px; ">]</span>;
UIPopoverController<span style="margin: 0px; padding: 0px; ">*</span> popController <span style="margin: 0px; padding: 0px; ">=</span> <span style="margin: 0px; padding: 0px; ">[</span><span style="margin: 0px; padding: 0px; ">[</span>UIPopoverController alloc<span style="margin: 0px; padding: 0px; ">]</span> initWithContentViewController<span style="margin: 0px; padding: 0px; ">:</span>vCtrl<span style="margin: 0px; padding: 0px; ">]</span>;
popController.popoverContentSize <span style="margin: 0px; padding: 0px; ">=</span> CGSizeMake<span style="margin: 0px; padding: 0px; ">(</span><span style="margin: 0px; padding: 0px; ">320</span>,<span style="margin: 0px; padding: 0px; ">480</span><span style="margin: 0px; padding: 0px; ">)</span>;
CGrect rect <span style="margin: 0px; padding: 0px; ">=</span> CGRectMake<span style="margin: 0px; padding: 0px; ">(</span><span style="margin: 0px; padding: 0px; ">0</span>,<span style="margin: 0px; padding: 0px; ">0</span>,<span style="margin: 0px; padding: 0px; ">2</span>,<span style="margin: 0px; padding: 0px; ">2</span><span style="margin: 0px; padding: 0px; ">)</span>;
<span style="margin: 0px; padding: 0px; ">[</span>popController presentPopoverFromRect<span style="margin: 0px; padding: 0px; ">:</span>rect
inView<span style="margin: 0px; padding: 0px; ">:</span>aView
permittedArrowDirections<span style="margin: 0px; padding: 0px; ">:</span>UIPopoverArrowDirectionUp
animated<span style="margin: 0px; padding: 0px; ">:</span><span style="margin: 0px; padding: 0px; ">YES</span><span style="margin: 0px; padding: 0px; ">]</span>;</span>
在使用该控制器的时候,下面几个步骤是必须的:
1.UIPopoverController该控制器的内容必须由一个控制器提供;提供方式有三:
- - (id)initWithContentViewController:(UIViewController *)viewController
- @property (nonatomic, retain) UIViewController *contentViewController
- - (void)setContentViewController:(UIViewController *)viewController animated:(BOOL)animated
2.设置箭头方向:
@property (nonatomic, readonly) UIPopoverArrowDirection popoverArrowDirection
3.设置内容大小:
@property (nonatomic) CGSize popoverContentSize
备注:
<1>.如果从一个导航按钮处呈现,使用:
presentPopoverFromBarButtonItem:permittedArrowDirections:animated:;
如果要从一个视图出呈现,使用:
presentPopoverFromRect:inView:permittedArrowDirections:animated:
<2>.如果设备旋转以后,位置定位错误需要在父视图控制器的下面方法里面重新定位:
didRotateFromInterfaceOrientation:(在这个方法体里面重新设置rect)
然后再次调用:
- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated