Переход к следующему viewcontroller зависит от архитектуры вашего кода.Попробуйте следующий код в зависимости от вашего дизайна.Вариант 1: Если вам нужно вернуться к предыдущему ViewController, просто измените вашу getComposerToken функцию:
if let dict = json as? [String: Any], {
let token = dict["accessToken"] {
print("Blockchain Token:\(token)")
dispatch_async(dispatch_get_main_queue()) {
self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
}
}
}
opt 2: С другой стороны, если вы используете Segue для следующего viewController в stoaryboard, дайте вашему segue имя (идентификатор), а затем следуйте этому коду:
if let dict = json as? [String: Any], {
let token = dict["accessToken"] {
print("Blockchain Token:\(token)")
dispatch_async(dispatch_get_main_queue()) {
self.performSegue(withIdentifier: "YourSegueName", sender: token)
}
}
}
Кроме того, вы должны переопределить метод подготовки для передачи данных
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segueName" {
let viewController = segue.destination as? YourViewController
if let token = sender as? String {
viewController?.token = token
}
}
}
}
OPT 3: Если вы используете контроллер push-представления после создания из раскадровки, вы должны дать своему контроллеру представления идентификатор в раскадровке, а затем вы можете создать его экземпляр с помощью и нажать его с помощью:
if let dict = json as? [String: Any], {
let token = dict["accessToken"] {
let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let abcViewController = storyboard.instantiateViewControllerWithIdentifier("YourControlleridentifier") as! YourViewController
YourViewController.token = token
navigationController?.pushViewController(YourViewController, animated: true)
}
}