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