使用简单的导航控制器和视图控制器子类创建 Popover。
####它是如何工作的?
创建 SYPopoverViewController
的子类,将您的子视图添加到 popoverView
并将其放置在其内
- (void)updateFramesAndAlphas
{
[super updateFramesAndAlphas];
// here the self.popoverView.frame is up to date
}
使用 SYPopoverNavigationController
来呈现 SYPopoverViewController
的子类
-(void)presentAsPopoverFromViewController:(SYPopoverViewController *)viewController animated:(BOOL)animated;
您可以决定使用(iOS 7+)透明背景等
[popoverNavController setBackgroundsColor:[UIColor clearColor]]
您可以使用代理方法知道和控制何时关闭 Popover
-(BOOL)popoverNavigationControllerShouldDismiss:(SYPopoverNavigationController *)popoverNavigationController;
-(void)popoverNavigationControllerWillDismiss:(SYPopoverNavigationController *)popoverNavigationController animated:(BOOL)animated;
-(void)popoverNavigationControllerWillPresent:(SYPopoverNavigationController *)popoverNavigationController animated:(BOOL)animated;
您定义视图控制器的大小
BOOL showSmallMenu = ....
[popoverVC setPopoverSizeBlock:^(BOOL iPad, BOOL iPhoneSmallScreen) {
// don't need height > width
if(showSmallMenu)
return CGSizeMake(300, 300);
if(iPad)
return CGSizeMake(300, 600);
// iPhone and iPods with 3inches screens
if(iPhoneSmallScreen)
return CGSizeMake(300, 440);
// Other devices
return CGSizeMake(300, 500);
}];
您可以在您想使用它的每个项目中随意使用,如果出现问题,请不要责怪我 :)
-- dvkch