1.在需要弹出控制器界面创建一个按钮,点击调用下面方法
2.BXViewController是需要弹出界面的控制器
- (IBAction)openButtonClick:(UIButton *)sender {
BXViewController * testVC = [BXViewController new];
// 设置大小
testVC.preferredContentSize = CGSizeMake(100, 100);
// 设置 Sytle
testVC.modalPresentationStyle = UIModalPresentationPopover;
// 需要通过 sourceView 来判断位置的
testVC.popoverPresentationController.sourceView = sender;
// 指定箭头所指区域的矩形框范围(位置和尺寸),以sourceView的左上角为坐标原点
// 这个可以 通过 Point 或 Size 调试位置
testVC.popoverPresentationController.sourceRect = sender.bounds;
// 箭头方向
testVC.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
// 设置代理
testVC.popoverPresentationController.delegate = self;
[self presentViewController:testVC animated:YES completion:nil];
}
-(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller{
return UIModalPresentationNone; //不适配
}
- (BOOL)popoverPresentationControllerShouldDismissPopover:(UIPopoverPresentationController *)popoverPresentationController{
return YES; //点击蒙版popover消失, 默认YES
}