预加载UIWebView

时间:2016-03-01 10:51:02

标签: ios swift uiwebview

我已尝试在我的代码中预加载UIWebView但没有任何结果。 我无法弄清楚代码中的错误。

第一个UIViewController

func viewDidLoad(){
let gallery = storyboard?.instantiateViewControllerWithIdentifier("Gallery") as! GalleryViewController

gallery.loadwWebView()
}

在第二个UIViewController

func loadwWebView(){
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: "https://www.google.com")!))

self.view.addSubview(webView)

}

我已选择以编程方式创建UIWebView方式,因为如果我使用@IBOutlet,它会崩溃。

1 个答案:

答案 0 :(得分:0)

问题在于您实例化了一个库,而该库又创建了一个Web视图,但gallery是一个局部变量,当它超出范围时将被释放。

您需要保留对此视图控制器的引用(例如,使其成为当前视图控制器的属性)。如果你这样做,你需要确保当你转换到这个视图控制器时,你不使用segue(因为那将创建第二个视图控制器的第二个实例),而是以编程方式过渡到你已经实例化。

您可能还希望保存对添加到第二个视图控制器视图层次结构中的Web视图的引用,否则您将无法再次引用它(或者至少没有一些繁琐的子视图枚举)。