UIAlertController в неправильном положении - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть ситуация, когда предупреждение отображается в верхнем левом углу экрана (и отключается), как описано в UIAlertController перемещается в ошибочную позицию вверху экрана, когда он вызывает `presentViewController:`

Мой код скопирован и вставлен из документации Apple:

- (void) alertHere
{

    UIAlertController* alert = [UIAlertController 
alertControllerWithTitle:@"My Alert"
                message:@"This is an alert."

   preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
                handler:^(UIAlertAction * action) {}];

    [alert addAction:defaultAction];

    [self presentViewController:alert animated:YES 
    completion:nil];
}

Я звоню из UIViewController.

Я просто не понимаю ни обсуждение стекового потока, на которое ссылаются выше, ни ответы Мне нужно что-то плохое простое программист из степей может понять. Apple не считает это ошибкой (очевидно), но я не понимаю, почему, и я, конечно, не понимаю, как ее исправить.

Спасибо за хорошее простое решение или хотя бы простое описание того, что я делаю неправильно.

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Ответ лежит здесь: Как представить UIAlertController, когда его нет в контроллере представления?

Мне потребовалось некоторое время, чтобы понять это, но однажды реализованный, он работает.

0 голосов
/ 09 сентября 2018

Согласно этому сообщению

Попытка представить UIViewController на UIViewController, вид которого не находится в иерархии окон

Кажется, вы звоните alertHere из viewDidLoad так что для решения вашей проблемы вы должны позвонить в ViewDidAppear.

...