Это происходит из-за того, что представление вашего GlobalViewController в данный момент отсутствует в окне.Он был заменен при переходе к ViewController.
Если вы хотите показывать свое предупреждение в любом другом viewcontroller, когда интернет недоступен, вы должны определить это предупреждение как категорию на UIViewController и затем вызывать его всякий раз, когда захотитечтобы отобразить его.
Примерно так:
Выберите проект и нажмите «Cmd + n», чтобы добавить новый файл.Выберите файл Objective-C
Введите имя файла и сохраните.
Введите свой код:
UIViewController + SimplePing.h
@interface UIViewController (SimplePing)
- (void)simplePing:(SimplePing *)pinger didFailWithError:(NSError *)error;
@end
UIViewController +SimplePing.m
@implementation UIViewController (SimplePing)
- (void)simplePing:(SimplePing *)pinger didFailWithError:(NSError *)error {
NSLog(@"didFailWithError: %@", [error description]);
NSLog(@"#####%@", error.localizedDescription);
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"" message:@"No internet connection, please check it..." preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { }];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil];
[alert addAction:cancel];
[alert addAction:ok];
dispatch_async(dispatch_get_main_queue(), ^{
[self presentViewController:alert animated:YES completion:nil];
});
}
@end
Теперь вы можете вызывать его с любого вашего viewcontroller.