webView.loadRequest 错误,如果使用 presentViewController,但如果使用 segue 则一切正常

Posted

技术标签:

【中文标题】webView.loadRequest 错误,如果使用 presentViewController,但如果使用 segue 则一切正常【英文标题】:webView.loadRequest error if use presentViewController, but if use segue all is ok 【发布时间】:2016-07-03 13:42:05 【问题描述】:

我刚到 Swift ...

我有一个带有按钮的视图控制器,该按钮可以“连接”到第二个视图控制器。

第二个视图控制器有一个 WebView。

如果我按下这个按钮,一切正常,然后我加载第二个视图控制器,里面有网站。

问题是因为有时我需要手动强制此 segue。然后我这样做:

   let secondViewController:WebV = WebV()
   self.presentViewController(secondViewController, animated: true, completion: nil)

然后,它在 "webView.loadRequest(request)"

行中产生了跟随错误

错误:

致命错误:在展开可选值时意外发现 nil

谢谢

【问题讨论】:

【参考方案1】:

你为什么不直接执行SegueWithIdentifier?在你的故事板上,为第二个视图控制器创建一个 segue 并在你的检查器中给它一个标识符,即 ("mySegueIdentifier")——而不是当你需要 segue 时只需调用 performSegueWithIdentifier("mySegueIdentifier")

【讨论】:

感谢您的帮助,我试过了。代码运行没有错误,但第二个视图没有启动。我在“storyboard segue/identifier”中给出了名称(类为空,模块也为空)。我还需要什么吗? 第二个viewController需要和文件有相同的类名。例如,如果您创建了一个名为 secondViewController 的第二个视图控制器并且它是一个 UIViewController,那么您需要创建一个新文件(类)来控制 secondViewController。然后在类名下拉列表下,应该有该文件(类)的选项。选择它,你应该很高兴。尝试从新文件向终端打印一些内容以验证它是否正常工作。然后 performSegueWithIdentifier("mySeguieIdentifier", sender: self) 应该可以解决问题 感谢您的帮助。我有你告诉我的课程,但我找到了原因......我在 viewDidLoad 上使用 performSegueWithIdentifier 并且我正在阅读我需要像这样的调用 dispatch_async(dispatch_get_main_queue()) self.performSegueWithIdentifier("segueWeb", sender: self )。再次感谢

以上是关于webView.loadRequest 错误,如果使用 presentViewController,但如果使用 segue 则一切正常的主要内容,如果未能解决你的问题,请参考以下文章

为WKWebkitView运行localhost

UIWebView+AF网络问题

Swift & UIWebView 元素隐藏

如何使用 WKWebview 检查链接是不是损坏?

如果段错误不可恢复,为啥称为错误(而不是中止)?

mysql如果存在给出错误错误的语法?