iOS- iPad UIPopoverController

在IPAD开发中,有一个很有趣的视图控制器,UIPopoverControllr,它的初始化必须要设置一个"内容视图",相当于它本身只是作为一个“容器”,而显示的内容还需要另外一个视图。

初始化:

   

-(void)show:(UIButton *)button{

//    TableViewController *tb=[[TableViewController alloc]initWithNibName:nil bundle:nil];

    TableViewController *popoverViewController = [[TableViewController alloc]initWithNibName:nil bundle:nil];

    

   

        

        popoverViewController.title = @"选择你喜欢的颜色";

        UINavigationController *nav = [[UINavigationController alloc]

                                       initWithRootViewController:popoverViewController];

        self.poc  = [[UIPopoverController alloc] initWithContentViewController:nav];

        

    

    

    [self.poc presentPopoverFromRect:button.bounds inView:button permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

}

//如果不需要圆角,可以在内容控制器中加入:

- (void)viewWillAppear:(BOOL)animated

{
    self.view.superview.layer.cornerRadius= 0;
    
}
UIPopoverController 设定大小:
 self.popover.popoverContentSize = CGSizeMake(340, 350);





UIPopoverPresentationController设定大小:
UIPopoverPresentationController *presentationController = [vc popoverPresentationController];

vc.preferredContentSize = CGSizeMake(500, 500);


sourceRect   

sourceView这里俩属性  是所在页面  popover箭头指向sourceRect中心

permittedArrowDirections设置为0即可以不显示箭头



如果想去掉圆角,在弹出控制器添加:

- (void)viewWillAppear:(BOOL)animated

{
self.view.superview.layer.cornerRadius
 = 0;

}
原文地址:https://www.cnblogs.com/niit-soft-518/p/4311220.html