预加载UIWebView

时间:2017-01-10 12:35:16

标签: ios swift uiwebview

我在将UIWebView预加载到第二个视图控制器时遇到问题。

我没有收到任何错误,第二个视图中没有任何加载。

我在第一个视图中的预加载功能如下..

func preloadShop(){
        let preload = storyboard!.instantiateViewControllerWithIdentifier("Shop") as! ViewController


        preload.loadWebView()
        print("preloading shop")
    }

我的第二个视图功能是..

func loadWebView(){


        let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: view.bounds.size.width, height: view.bounds.size.height))
        webView.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.google.co.uk")!))

        self.view.addSubview(webView)    
    }

1 个答案:

答案 0 :(得分:1)

如果您通过segue显示ViewControllers,

let preload = storyboard!.instantiateViewControllerWithIdentifier("Shop") as! ViewController

将创建ViewController的新实例,而不是当前的实例。

如果您想预加载webview的内容,则需要在拍摄ViewController中创建一个属性,如果手动从那里出现,则不需要segue。

您还应该将加载方法放在 viewDidLoad 中并调用

preload.view.layoutSubviews()

而不是

preload.loadWebView()

确保视图已加载。