UIPopViewController的应用

2017-09-14  本文已影响0人  狒狒James_Leo
1.在功能VC里重写这个方法
//重写preferredContentSize,返回popover的大小
- (CGSize)preferredContentSize {
    if (self.presentingViewController && self.tableView != nil) {
        CGSize tempSize = self.presentingViewController.view.bounds.size;
        tempSize.width = 150;
        CGSize size = [self.tableView sizeThatFits:tempSize];  //sizeThatFits返回的是最合适的尺寸,但不会改变控件的大小
        return size;
    }else {
        return [super preferredContentSize];
    }
}


2.在目标按钮的点击方法中添加一下代码(目标VC<想要展示的VC>)
    self.itemPopVC.modalPresentationStyle = UIModalPresentationPopover;
    
    UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:sender];
    
    self.itemPopVC.popoverPresentationController.barButtonItem = item;
    //箭头方向
    self.itemPopVC.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionAny;
    //代理
    self.itemPopVC.popoverPresentationController.delegate = self;
    [self.myVC presentViewController:_itemPopVC animated:YES completion:nil];

代理方法
-(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller
{
    return  UIModalPresentationNone;
}

记得签订协议<UIPopoverPresentationControllerDelegate>



A 模态弹出B  那么A为presentingViewController B为presentedViewController
上一篇 下一篇

猜你喜欢

热点阅读