在UIView中创建WKWebView

时间:2015-09-04 13:16:41

标签: ios uiview wkwebview

我正在尝试在UIView中添加WKWebView,

代码似乎工作正常(页面加载边界很好委托打印消息没有错误) 但View(称为ViewForStuffInWeb)保持空白,其中没有任何内容  有谁可以解释为什么?

import UIKit
import WebKit

class ViewController: UIViewController ,WKNavigationDelegate  {


@IBOutlet var ViewForStuffInWeb: UIView!

var webView = WKWebView()
let request =  "https://www.google.fr"



override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    self.automaticallyAdjustsScrollViewInsets = false
    let config = WKWebViewConfiguration()
    webView = WKWebView(frame: ViewForStuffInWeb.bounds ,configuration : config)
    webView.navigationDelegate = self
    ViewForStuffInWeb = webView
    println("webview : frame :\(webView.frame)  , bounds : \(webView.bounds)")
    requesting(request)
    }

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view, typically from a nib.
}

func requesting (request :String) {
    if let url = NSURL(string: request) {
        webView.loadRequest(NSURLRequest(URL: url))
    }

}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
    println("decide policy action")
    decisionHandler(WKNavigationActionPolicy.Allow)
}
func webView(webView: WKWebView, decidePolicyForNavigationResponse navigationResponse: WKNavigationResponse, decisionHandler: (WKNavigationResponsePolicy) -> Void) {
    println("decide policy response")
    decisionHandler(WKNavigationResponsePolicy.Allow)
}
func webView(webView: WKWebView, didCommitNavigation navigation: WKNavigation!) {
    println("commit navigation")
}
func webView(webView: WKWebView, didFailNavigation navigation: WKNavigation!, withError error: NSError) {
    println("fail in didFailNavigation \(error)")
}
func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
    println("fail in didFailProvisionalNavigation \(error)")
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
    println("finish navigation")
}

感谢阅读

1 个答案:

答案 0 :(得分:1)

您永远不会将WKWebView添加到视图层次结构中。在您的viewDidAppear中,哪些代码应该真正转移到viewDidLoad,您可能想要替换:

ViewForStuffInWeb = webView 

使用:

ViewForStuffInWeb.addSubview(webView)

虽然目前还不清楚ViewForStuffInWeb究竟是什么。只有当您的笔尖中存在该视图并且它已连接时,上述内容才有效。