Представлен UIViewController не может представить UIAlertController - PullRequest
0 голосов
/ 02 октября 2018

Когда кнопка отправки нажимается в моем приложении, на активном контроллере представления отображается SubmitViewController для отображения хода загрузки.

При получении уведомления об ошибке должно отображаться предупреждение с ошибкой.и отклонить себя.

Проблема заключается в том, что предупреждение не отображается, поскольку self.navigationController равно nil.Как я могу представить предупреждение в этом случае?

Я не могу использовать раскадровку для создания экземпляра SubmitViewController, как некоторые могут предположить, поскольку он не является частью раскадровки.

Просмотреть контроллериспользуется для представления SubmitViewController:

-(void)submitBtnClicked:(id)sender {
    SubmitViewController *submitViewController = [SubmitViewController new];
    [self.navigationController presentViewController:submitViewController animated:YES completion:nil];
}

SubmitViewController.swift:

@objc func submitErrorNotification(_ notification:Notification) {
    self.unsubscribe()

    let title:String = notification.userInfo!["title"] as! String
    let message:String = notification.userInfo!["message"] as! String

    let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
    alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))

    if (self.navigationController == nil) {
        NSLog("Error: navigation controller is nil");// THIS error occurs
    }

    self.navigationController?.present(alertController, animated: false, completion: nil)

    self.dismiss(animated: false, completion: nil)
}

1 Ответ

0 голосов
/ 02 октября 2018

Почему вы используете ключевое слово оповещения в:

[self.navigationController presentViewController:alert animated:YES completion:nil];

Попробуйте:

SubmitViewController *myViewController = [SubmitViewController new];
    [self.navigationController presentViewController:myViewController animated:YES completion:nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...