UIAlertController вообще не появляется
Я пытаюсь добавить UIAlertController
в мое приложение, но оно не появляется вообще. Я пробовал следующее:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Message" message:@"Web Service is not available." preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:ok];
[self presentViewController:alertController animated:YES completion:nil];
но это вообще не появляется, что я делаю не так?
2 ответа
Решение
В контроллере исходного представления раскадровки это должно быть в viewDidAppear:
, В противном случае, если используется в XIB, он также покажет предупреждение в viewWillAppear
а также viewDidLoad
,
Я запустил ваш код в шаблоне приложения Single View в iOS 8 и 9, поместив ваш код в заданный ViewController,
в следующем представлении обратных вызовов жизненного цикла:
viewDidAppear
- удалосьviewWillAppear
- оповещение не отображается; В результате получился вывод в консоли: Внимание! Попытка представить чей вид не находится в иерархии окон!viewDidLoad
- оповещение не отображается; В результате получился вывод в консоли: Попытка загрузить представление контроллера представления, пока он освобождается, не разрешена и может привести к неопределенному поведению ().
- (void)showMessage:(BOOL)animated {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Do not leave any Field Empty" message:nil preferredStyle:UIAlertControllerStyleAlert];
[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[self dismissViewControllerAnimated:YES completion:nil];
}]];
[self present:alertController animated:YES completion:nil];
}
где я называю этот метод
[self showMessage:YES];
это работает хорошо, может кто-то получить выгоду.