reason: 'Your application has presented a UIAlertController (<UIAlertController: 0x124638680>) of style UIAlertControllerStyleActionSheet. The modalPresentationStyle of a UIAlertController with this style is UIModalPresentationPopover. You must provide location information for this popover through the alert controller's popoverPresentationController. You must provide either a sourceView and sourceRect or a barButtonItem. If this information is not known when you present the alert controller, you may provide it in the UIPopoverPresentationControllerDelegate method -prepareForPopoverPresentation.'
修改前:
UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:@"提示" message:@"确定要退出吗?" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelACtion = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"取消点击了!");
}];
UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"确定点击了!");
}];
[actionSheet addAction:cancelACtion];
[actionSheet addAction:sureAction];
[self presentViewController:actionSheet animated:YES completion:nil];
================================================
修改后:
UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:@"提示" message:@"确定要退出吗?" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelACtion = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"取消点击了!");
}];
UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"确定点击了!");
}];
[actionSheet addAction:cancelACtion];
[actionSheet addAction:sureAction];
UIPopoverPresentationController *popver = alertController.popoverPresentationController;
if(popver){
popver.sourceView = _imgutton;
popver.sourceRect = _imgutton.bounds;
popver.permittedArrowDirections = UIPopoverArrowDirectionAny;
}
[self presentViewController:actionSheet animated:YES completion:nil];
_imgutton是出发这个弹出按钮的btn。
参考阅读:https://www.jianshu.com/p/d1b07669c6c6