Отклонение UIAlertController в UIViewController стека UINavigationController - PullRequest
0 голосов
/ 05 октября 2018

У меня есть контроллер навигации с тремя контроллерами вида.Я хотел показать предупреждение о загрузке в моем втором контроллере представления, пока ресурсы не будут загружены с сервера.Поэтому я добавил следующий код в viewDidLoad() метод

alert = UIAlertController(title: nil, message: "Loading...", preferredStyle: .Alert)
        let loadingIndicator = UIActivityIndicatorView(frame: CGRect(x: 10, y: 5, width: 50, height: 50))
loadingIndicator.hidesWhenStopped = true
loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
loadingIndicator.startAnimating()
alert.view.addSubview(loadingIndicator)
presentViewController(alert, animated: true, completion: nil)

И у меня также есть метод с именем loadFromURL(), который имеет следующий код

let request = NSURLRequest(URL: NSURL(string: "server_url"))
let dataTask = self.urlSession.dataTaskWithRequest(request) { (data, response, error) -> Void in
    NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void in
        if error == nil && data != nil {
            //...implementation
        }
        self.dismissViewControllerAnimated(true, completion: nil)
    })
}
dataTask.resume()

Все отлично работает дляпервый раз, когда я перемещаюсь от первого контроллера представления ко второму.Но когда я снова перехожу к своему второму контроллеру вида из первого, после возврата к первому контроллеру вида контроллер предупреждений не сбрасывает и он там навсегда.

Также во второй раз я получаю предупреждение как:

Попытка отстранения от контроллера представления во время презентации или увольнения!.

Я не знаю, где я иду не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...