2016-03-22 3 views
1

Я хочу, чтобы вызвать другую ViewController в func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) но есть ошибкаSwift: вызов контроллер представления в Func WebView (WebView: UIWebView, shouldStartLoadWithRequest

Ошибка: UIWebViewExample [18859: 1229622] Внимание: Попытка представить на которой вид не в иерархии окон!

Я гугле и знаю, что я должен назвать вид контроллера в «ViewDidLoad». однако я хочу, чтобы выскочить вид контроллера логина непосредственно, когда я прикасаюсь "логинwebview.

Вот мой код

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { 

    let surl = request.URL?.absoluteString 

    if surl == "http://myurl/m/include/login.php"{ 
     print("login pressed") 


     ////call login view controller 
     var dvc = ViewController() 
     dvc.openNewViewController() 

     return false 

    } 

    return true 
} 

public func openNewViewController(){ 
    var newController = LoginViewController() 
    self.presentViewController(newController, animated: true, completion: nil) 
} 
+0

Пожалуйста, не добавляйте решение вопроса. Если хотите, отправьте решение в поле «Ваш ответ», это нормально, но вопрос должен оставаться вопросом. – Moritz

+0

Спасибо. Я новичок в stackoverflow, поэтому ошибся. Я положил свой ответ. –

ответ

0

[SOLEVED BY СЕБЕ] Я ставлю этот код в WebView(). Не забудьте установить идентификатор «loginViewActivity» в stroyboard. Я больше не использую openNewViewController().

 dispatch_async(dispatch_get_main_queue(), { 

      let vc = self.storyboard?.instantiateViewControllerWithIdentifier("login") as! LoginViewController 
      self.presentViewController(vc, animated: true, completion: nil) 


     }) 
+0

Извините, вы отправили dispatch_async (dispatch_get_main_queue(), { внутри func openNewViewController()? Или вы поместили его в другое место? Не могли бы вы отправить или отправить мне свой код? Я пытаюсь сделать то же самое , –

0

//// Логин вызова вид контроллера вар DVC = ViewController() dvc.openNewViewController()

Изменить приведенный выше код к следующему

//// вызова контроллер входа в систему self.openNewViewController()