我有一个带有三个视图控制器的导航控制器。我想在第二个视图控制器中显示加载警报,直到从服务器加载资源为止。因此,我在其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()
当我从第一个视图控制器导航到第二个视图控制器时,一切都第一次正常运行。但是,当我再次从第一个导航到第二个视图控制器时,返回第一个视图控制器后,警报控制器并没有消失,并且永远存在。
第二次,我也收到类似的警告
在演示或解散过程中,尝试从视图控制器中解散!。
我不知道我要去哪里错了。