我有UIWebView
,当拦截某个特定网址时会转换为UIViewController
。
点击按钮时,viewController
会以模态方式显示另一个UIViewController
。
奇怪的是,当向第一个UIViewController
执行展开segue时,它仅在一瞬间显示webView
并且我相当确定这是与第一个webView
相同webView
{&#34}继续"从它之前留下的URL中,以及webView
中发起的所有变量都具有它们在segue之前保存的值。
func makeHTTPGetRequest(path: String, onCompletion: ServiceResponse) {
let request = NSMutableURLRequest(URL: NSURL(string: path)!)
let session = NSURLSession.sharedSession()
if (NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies as? [NSHTTPCookie] != nil) || ((NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies as? [NSHTTPCookie])! != []){
ToolBox.cookieJar = (NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies as? [NSHTTPCookie])!
// ToolBox.maxIndex++
}
println(NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies as? [NSHTTPCookie])
var cookies = ToolBox.cookieJar
var headers : NSDictionary = NSHTTPCookie.requestHeaderFieldsWithCookies(cookies)
var storage : NSHTTPCookieStorage = NSHTTPCookieStorage.sharedHTTPCookieStorage()
for cookie in storage.cookies as! [NSHTTPCookie]{
storage.deleteCookie(cookie)
}
NSUserDefaults.standardUserDefaults()
request.allHTTPHeaderFields = (headers as [NSObject : AnyObject])
request.HTTPShouldHandleCookies = true
request.HTTPMethod = "POST"
var bodyData = "frontend=android"
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
request.addValue("application/json", forHTTPHeaderField: "Accept")
let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
let json:JSON = JSON(data: data)
onCompletion(json,error)
})
task.resume()
}
我在所有可疑位置设置调试点,就在viewController
移动到webView
之前,task.resume()
被调用。
webView
现在显示,但viewController
类中的代码正在执行。
我试图了解过去几个小时没有运气的原因可能是什么原因。我很确定我根本没有调用webView
,实际上它是初始视图控制器而没有其他类调用它,因此唯一可能的原因是webView
被隐式调用通过我正在使用的一些功能,但我无法弄明白,我正在阅读每个功能的文档,但我找不到任何解决这个错误。
如果有人知道该错误的原因,请与我分享。
编辑:我认为值得一提的另一件事是,从viewController
到webView
的过渡动画,似乎{{{ 1}}正在向viewController
展开,这是奇怪的,因为从webView
到webView
的segue是show segue。
更新:我评论了viewController
和viewWillAppear()
中的所有代码并运行了该应用。在调用viewDidAppear()
函数后调用webView,调用webView的viewDidAppear()
。
Update2:感谢所有试图解决此问题的人。这个错误结果非常愚蠢。
viewWillAppear()
我正在解雇@IBAction func unwindToList(segue : UIStoryboardSegue){
if !segue.sourceViewController.isBeingDismissed() {
segue.sourceViewController.dismissViewControllerAnimated(true, completion: nil)
}
}
,这就是它回到webView的原因。很抱歉发布了这样愚蠢的问题