У меня есть код iOS, в котором мне нужно отображать 2 предупреждения подряд. Когда пользователь нажимает «ОК» в первом предупреждении, мне нужно отобразить второе предупреждение. Поскольку отображение предупреждения не «приостанавливает» код, мое второе предупреждение пытается отобразиться почти в то же время, что и первое предупреждение, и все ломается (второе предупреждение не отображается).
Что мне нужно, так это способ приостановить код при отображении первого предупреждения. Как только пользователь нажимает «ОК» в первом предупреждении, он может отобразить второе предупреждение.
Каков правильный способ дождаться завершения первого предупреждения, прежде чем переходить ко второму предупреждению?
Вот мой полный код, если это поможет. Каждое оповещение вызывается условием. Если оба условия верны, то я столкнулся с описанной проблемой с одновременным предупреждением.
UIAlertController* alert;
UIAlertAction* defaultAction;
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
if(status != kCLAuthorizationStatusAuthorizedAlways) {
alert = [UIAlertController alertControllerWithTitle:@"Warning"
message:@"Reminder will not work unless you enable 'Always' location."
preferredStyle:UIAlertControllerStyleAlert];
defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
}
UIUserNotificationSettings *settings = [[UIApplication sharedApplication] currentUserNotificationSettings];
if(settings.types==0) {
alert = [UIAlertController alertControllerWithTitle:@"Warning"
message:@"Reminder will not work unless you enable notifications."
preferredStyle:UIAlertControllerStyleAlert];
defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
}