1、初始化UIPopoverController
UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:navigationController];
//必须是个 ViewController
/*且该 ViewController的 viewDidLoad方法中要设置其在popover中的尺寸,如
self.contentSizeForViewInPopover = CGSizeMake(300.0, 280.0);
*/
self.recentSearchesPopoverController = popover;
recentSearchesPopoverController.delegate = self; //self要实现UIPopoverControllerDelegate协议
2、设置当popover弹出时,用户仍可以交互的视图
// Ensure the popover is not dismissed if the user taps in the search bar.
popover.passthroughViews = [NSArray arrayWithObject:searchBar];
3、展现popover
//弹出窗口大小,如果屏幕画不下,会挤小的。这个值默认是320x1100
self.recentSearchesPopoverController.popoverContentSize=CGSizeMake(300,300);
//popoverRect的中心点是用来画箭头的,如果中心点如果出了屏幕,系统会优化到窗口边缘
//最佳实践,从哪个view弹出,就以哪个view的bounds送进去就好了,箭头自动指向这个view的中心
[self.recentSearchesPopoverController presentPopoverFromRect:self.searchBar.bounds
inView:self.searchBar //上面的矩形坐标是以这个view为参考的
permittedArrowDirections:UIPopoverArrowDirectionAny //箭头方向
animated:NO];
4、消失popover
//dismiss the popover.
[recentSearchesPopoverController dismissPopoverAnimated:YES];
5、实现 UIPopoverControllerDelegate协议的方法: <UIPopoverControllerDelegate>
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
}