使用 3D Touch 查看 UIButton 时 UIWebView 不显示内容
UIWebView not showing content when peeking on a UIButton using 3D Touch
我希望实现 link 网站的效果,并且可以使用 3D Touch 进行预览,例如在 Apple 的 Notes 应用中。
在我的情节提要中,我的一个 UIViewController 中有一个 UIButton(打开 link),我有另一个自定义类型 WebViewController(情节提要 ID:WebView)的 UIViewController,仅包含一个 UIWebView。我已经在 UIButton 上实现了 3D Touch,我可以在速览视图中显示我想要的任何内容,但是当我在速览视图中显示它时,我的 UIWebView 没有显示它的内容。我已经使用 UIWebViewDelegate 函数来确认 UIWebView 正在成功加载 url。唯一的问题是它在 UIWebView 中没有显示任何内容,当我在 UIButton 上使用 3D touch 时,我只得到一个空白的 UIWebView。
这是我的 UIViewController 中 3D Touch peek 实现的代码:
func previewingContext(_: UIViewControllerPreviewing, viewControllerForLocation: CGPoint) -> UIViewController? {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let previewController = storyboard.instantiateViewController(withIdentifier: "WebView") as? WebViewController
previewController?.loadView()
previewController?.webView.loadRequest(URLRequest(url: URL(string: "https://google.com/")!))
return previewController
}
我使用了以下 UIWebViewDelegate 方法来检查 UIWebView 是否正在加载 url:
func webViewDidStartLoad(_ webView: UIWebView) {
print("Started loading")
}
func webViewDidFinishLoad(_ webView: UIWebView) {
print("Finished loading")
}
func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
print("WebView error: \(error)")
}
那些给我以下输出,所以我假设 url 加载正常:
Started loading
Finished loading
如何让 UIWebView 在速览视图中显示加载的 url?
我通过联系 KrakenDev 的 Hector(所有功劳都归功于他)解决了问题,他建议我将 UIWebView 的加载代码移至 WebViewController 的 viewWillAppear()
。现在一切正常。
我希望实现 link 网站的效果,并且可以使用 3D Touch 进行预览,例如在 Apple 的 Notes 应用中。
在我的情节提要中,我的一个 UIViewController 中有一个 UIButton(打开 link),我有另一个自定义类型 WebViewController(情节提要 ID:WebView)的 UIViewController,仅包含一个 UIWebView。我已经在 UIButton 上实现了 3D Touch,我可以在速览视图中显示我想要的任何内容,但是当我在速览视图中显示它时,我的 UIWebView 没有显示它的内容。我已经使用 UIWebViewDelegate 函数来确认 UIWebView 正在成功加载 url。唯一的问题是它在 UIWebView 中没有显示任何内容,当我在 UIButton 上使用 3D touch 时,我只得到一个空白的 UIWebView。
这是我的 UIViewController 中 3D Touch peek 实现的代码:
func previewingContext(_: UIViewControllerPreviewing, viewControllerForLocation: CGPoint) -> UIViewController? {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let previewController = storyboard.instantiateViewController(withIdentifier: "WebView") as? WebViewController
previewController?.loadView()
previewController?.webView.loadRequest(URLRequest(url: URL(string: "https://google.com/")!))
return previewController
}
我使用了以下 UIWebViewDelegate 方法来检查 UIWebView 是否正在加载 url:
func webViewDidStartLoad(_ webView: UIWebView) {
print("Started loading")
}
func webViewDidFinishLoad(_ webView: UIWebView) {
print("Finished loading")
}
func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
print("WebView error: \(error)")
}
那些给我以下输出,所以我假设 url 加载正常:
Started loading
Finished loading
如何让 UIWebView 在速览视图中显示加载的 url?
我通过联系 KrakenDev 的 Hector(所有功劳都归功于他)解决了问题,他建议我将 UIWebView 的加载代码移至 WebViewController 的 viewWillAppear()
。现在一切正常。