PerformSegueWithIdentifier does not work

扶醉桌前 提交于 2019-12-21 03:32:52

问题


I am trying to use use self.performSegueWithIdentifier to change the view on the Storyboard when a JSON file loaded remotely. For this I am using the Swift Class "Agent" to perform the HTTP request. Everything is working when I write the

self.performSegueWithIdentifier("toView2", sender: self)

out of the "done" variable. Why is it not working? I guess it has something to do with the "sender: self". But I don't know how to solve this. I don't get any errors on Xcode. It just loads the data from my server and then nothing happens...

    @IBAction func goToView2(sender: AnyObject) {
    let done = { (response: NSHTTPURLResponse!, data: Agent.Data!, error: NSError!) -> Void in
        self.namesJSON = JSONValue(data!)
        self.performSegueWithIdentifier("toView2", sender: self)
    };
    Agent.post("http://api.example.com/test.php", headers: [ "Header": "Value" ],
        data: [ "test": "ok" ], done: done)
}

回答1:


Edited: (I've put a slightly different answer in the first place)

Basically, the problem is that you have entered a side queue

and by just getting the main queue and invoking the segue in it, it will work quite fine.

dispatch_async(dispatch_get_main_queue()) {
   self.performSegueWithIdentifier("toView2", sender: self)
}

Hope it works



来源:https://stackoverflow.com/questions/24982722/performseguewithidentifier-does-not-work

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!