虽然我没有执行任何segue

时间:2015-06-26 06:28:27

标签: ios swift cocoa-touch webview segue

我有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被隐式调用通过我正在使用的一些功能,但我无法弄明白,我正在阅读每个功能的文档,但我找不到任何解决这个错误。

如果有人知道该错误的原因,请与我分享。

编辑:我认为值得一提的另一件事是,从viewControllerwebView的过渡动画,似乎{{{ 1}}正在向viewController展开,这是奇怪的,因为从webViewwebView的segue是show segue。

更新:我评论了viewControllerviewWillAppear()中的所有代码并运行了该应用。在调用viewDidAppear()函数后调用webView,调用webView的viewDidAppear()

Update2:感谢所有试图解决此问题的人。这个错误结果非常愚蠢。

viewWillAppear()

我正在解雇@IBAction func unwindToList(segue : UIStoryboardSegue){ if !segue.sourceViewController.isBeingDismissed() { segue.sourceViewController.dismissViewControllerAnimated(true, completion: nil) } } ,这就是它回到webView的原因。很抱歉发布了这样愚蠢的问题

0 个答案:

没有答案