Ios Swift:在func webView中调用视图控制器(webView:UIWebView,shouldStartLoadWithRequest

Ios Swift:在func webView中调用视图控制器(webView:UIWebView,shouldStartLoadWithRequest,ios,swift,webview,uiwebview,Ios,Swift,Webview,Uiwebview,我想调用func webView(webView:UIWebView,shouldStartLoadWithRequest:NSURLRequest,navigationType:UIWebViewNavigationType)中的另一个viewcontroller,但出现错误 错误:UIWebViewExample[18859:1229622]警告:尝试在其视图不在窗口层次结构中的对象上显示 我在谷歌上搜索,知道我应该在“ViewDidLoad”中调用视图控制器。但是,当我在webview中点

我想调用func webView(webView:UIWebView,shouldStartLoadWithRequest:NSURLRequest,navigationType:UIWebViewNavigationType)中的另一个viewcontroller,但出现错误

错误:UIWebViewExample[18859:1229622]警告:尝试在其视图不在窗口层次结构中的对象上显示

我在谷歌上搜索,知道我应该在“ViewDidLoad”中调用视图控制器。但是,当我在
webview
中点击“login”按钮时,我想直接弹出登录的视图控制器

这是我的密码

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)
}

[SOLEVED BY If If]我将此代码放入webView()。别忘了在stroyboard中设置“loginViewActivity”的标识符。我不再使用openNewViewController()


[SOLEVED BY If If]我将此代码放入webView()。别忘了在stroyboard中设置“loginViewActivity”的标识符。我不再使用openNewViewController()


////调用登录视图控制器 var dvc=ViewController() dvc.openNewViewController()

将上述代码更改为以下代码


////调用登录视图控制器
self.openNewViewController()

///调用登录视图控制器 var dvc=ViewController() dvc.openNewViewController()

将上述代码更改为以下代码


////调用登录视图控制器
self.openNewViewController()

请不要将解决方案添加到问题中。如果您愿意,可以在“您的答案”框中发布解决方案,但问题仍应为问题。谢谢。我是stackoverflow新手,因此犯了错误。我将我的答案放入了。请不要将解决方案添加到问题中。在“您的答案”框中发布解决方案框,如果您愿意,可以这样做,但问题应该仍然是一个问题。谢谢。我是stackoverflow新手,所以犯了一个错误。我把我的答案放进去了。很抱歉,您把dispatch_async(dispatch_get_main_queue(),{放在func openNewViewController()中了?或者你把它放在别的地方了吗?你介意把你的代码发布或发送给我吗?我正在尝试做完全相同的事情。很抱歉,你把dispatch_async(dispatch_get_main_queue(),{放在func openNewViewController()中了吗或者你把它放在别的地方了吗?你介意把你的代码贴出来或寄给我吗?我正试着做同样的事情。
        dispatch_async(dispatch_get_main_queue(), {

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


        })