У меня есть контроллер навигации с тремя контроллерами вида.Я хотел показать предупреждение о загрузке в моем втором контроллере представления, пока ресурсы не будут загружены с сервера.Поэтому я добавил следующий код в 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()
Все отлично работает дляпервый раз, когда я перемещаюсь от первого контроллера представления ко второму.Но когда я снова перехожу к своему второму контроллеру вида из первого, после возврата к первому контроллеру вида контроллер предупреждений не сбрасывает и он там навсегда.
Также во второй раз я получаю предупреждение как:
Попытка отстранения от контроллера представления во время презентации или увольнения!.
Я не знаю, где я иду не так.