我正在寻求在您具有指向网站链接的效果上,并可以使用3D触摸预览它,例如在Apple的Notes应用程序中。
在我的故事板中,我在我的一个UiviewControllers中有一个Uibutton(打开一个链接),并且我还有一个自定义类型WebViewController(故事板ID:WebView)的UiviewController,仅包含一个UIWebView。我已经在Uibutton上实现了3D触摸,并且可以在Peek视图中显示所需的任何内容,但是当我在Peek View中显示它时,我的UIWebView不会显示其内容。我已经使用了UIWebViewDelegate函数来确认UIWebView成功加载了URL。唯一的问题是它在UIWebView中没有显示任何内容,当我在UIBUTTON上使用3D触摸时,我只会得到一个空白的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()
。现在都在工作。