これは私が使用しているものです。このように、アラートが既に表示されている場合は、アプリではなく、ユーザーがそれを却下することを好みます。したがって、ビューがすでに警告を表示している場合は、5 秒待ってからもう一度試します。
追加したいのですが、これはあまりテストしませんでしたが、うまくいきます.(私が行った1つのテストから)、何かが欠けていないことを願っています。簡単すぎる :)
-(void) alertUserWithTitle:(NSString*) title Message:(NSString*) message
{
UIAlertController* alert = [UIAlertController alertControllerWithTitle:title message:message
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
if(self.presentedViewController == nil)
{
[self presentViewController:alert animated:YES completion:nil];
}else
{
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self alertUserWithTitle:title Message:message];
});
}
}