![](https://img.haomeiwen.com/i13793643/2da6fb2c3ca70d89.png)
vc.m
@interface ViewController ()<UIPopoverPresentationControllerDelegate>
- (void)rightBtnAction:(UIBarButtonItem *)barBtn {
PopVC *vc = [[PopVC alloc] init];
vc.modalPresentationStyle = UIModalPresentationPopover;
//设置依附的按钮
vc.popoverPresentationController.barButtonItem = barBtn;
//可以指示小箭头颜色
vc.popoverPresentationController.backgroundColor = [UIColor systemRedColor];
//content尺寸
vc.preferredContentSize = CGSizeMake(30, 40);
//方向
vc.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionAny;
vc.popoverPresentationController.delegate = self;
[self presentViewController:vc animated:YES completion:nil];
}
#pragma mark - UIPopoverPresentationControllerDelegate
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
return UIModalPresentationNone;
}
popvc.m
//重置本控制器的大小
- (CGSize)preferredContentSize {
if (nil != self.popoverPresentationController) {
CGSize tmpSize;
tmpSize.height = self.view.frame.size.height;
//该view显示的宽度,设置了1000也不会超过屏幕宽度
tmpSize.width = 200;
CGSize size = [_tvList sizeThatFits:tmpSize];
return size;
}
return [super preferredContentSize];
}
网友评论