2016-09-20 5 views
1

Как перейти к ViewController после определенных действий, например, здесь:как открыть ViewController в коде

func requestForAccessToken(authorizationCode: String) { 

     Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil) 
      .responseJSON { response in 

      switch response.result { 
      case .success(let JSON): 
       let response = JSON as! NSDictionary 
       let accessToken = response.object(forKey: "access_token")! 
       UserDefaults.standard.set(accessToken, forKey: "LIAccessToken") 
       UserDefaults.standard.synchronize() 
       ///here... 
       DispatchQueue.main.async(execute: {() -> Void in 
//     self.dismiss(animated: true, completion: nil) 
        let secondViewController: LoginViewController = LoginViewController() 
        self.present(secondViewController, animated: true, completion: nil) 
       }) 
      case .failure(let error): 
       print("Request failed with error: \(error)") 

      } 
     } 

    } 

создать ВК раскадровки и сделать класс VC-файл. Может быть, я должен сделать что-то другое.

+0

Вы должны создать SEGUE в Interface Builder. – ctabuyo

+0

Вы попробовали это? 'let secondViewController = UIStoryboard (имя:« LoginViewController », bundle: Bundle.main) .instantiateViewControllerWithIdentifier (« LoginViewController ») как? LoginViewController' – Santosh

+0

@Santosh no, m пытается сейчас. У меня есть еще один вопрос: я должен установить идентификатор в идентификаторе раскадровки? и после make 'self.present (secondViewController, animated: true, completion: noil)' – DmitrievichR

ответ

1

Если вы креационируете viewController в storyboard, то вам нужно создать экземпляр с помощью раскадровки. Попробуйте это:

DispatchQueue.main.async(execute: {() -> Void in 
    let secondViewController = UIStoryboard(name:"LoginViewController", bundle: nil.instantiateViewControllerWithIdentifier("LoginV‌​iewController") as? LoginViewController 
    self.present(secondViewController, animated: true, completion: nil) 
}) 

Надеясь, что вы назвали раскадровки, как LoginViewController и снабжен storyboardID в LoginViewController

+0

Я получаю ошибку в точке останова с 'let secondViewController = UIStoryboard (имя:« LoginViewController », bundle: nil.instantiateViewControllerWithIdentifier ("ЛОГНОРМОБР iewController"), как LoginViewController' – DmitrievichR

+0

Какую ошибку вы получаете – Santosh

+0

'15 libdyld.dylib 0x000000010510068d начать + 1 \t 16 ??? 0x0000000000000001 0x0 + 1 ) LibC++ abi.dylib:? оканчивающиеся неперехваченное исключение типа NSException' – DmitrievichR

Смежные вопросы