Подтвердить что ты не робот

PerformSegueWithIdentifier не работает

Я пытаюсь использовать self.performSegueWithIdentifier для изменения вида на Storyboard, когда файл JSON загружается удаленно. Для этого я использую "Агент агента Swift" для выполнения HTTP-запроса. Все работает, когда я пишу

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

из переменной "done". Почему это не работает? Я предполагаю, что это имеет какое-то отношение к "отправителю: я". Но я не знаю, как это решить. Я не получаю никаких ошибок в Xcode. Он просто загружает данные с моего сервера, а затем ничего не происходит...

    @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)
}
4b9b3361

Ответ 1

Отредактировано: (Вначале я поставил немного другой ответ)

В основном проблема заключается в том, что вы ввели боковую очередь

и просто получив основную очередь и вызов segue в ней, она будет работать нормально.

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

Надеюсь, что это работает.