Web 视图:在 loadRequest 中返回 nil 而在 URLRequest 中为 true

Posted

技术标签:

【中文标题】Web 视图:在 loadRequest 中返回 nil 而在 URLRequest 中为 true【英文标题】:Web view: Returning nil at loadRequest while true in URLRequest 【发布时间】:2017-04-28 01:49:02 【问题描述】:

我不知道哪里错了。

导入 UIKit

class DetailViewController: UIViewController, UIWebViewDelegate 
    @IBOutlet weak var designatedWebView: UIWebView!

    var webview: UIWebView!
    var testString: String!

    override func viewDidLoad() 
        super.viewDidLoad()

        designatedWebView = webview
        testString = "http://www.apple.com"

        let baseURL = URL(string: testString)
        let baseURLRequest = URLRequest(url: baseURL!) //this prints true
        designatedWebView.loadRequest(baseURLRequest)  //while this prints nil

    

【问题讨论】:

你想用designatedWebView = webview声明做什么? "this prints nil"是什么意思,func loadRequest(_ request: URLRequest)没有返回值 您是否打算拥有两个独立的 UIWebView? designatedWebView 来自情节提要吗? @R P 试图连接到另一个视图控制器。不过,我暂时与此断开了联系。哦............我删除了它们并修复了它。大声笑谢谢 @OliverM 是的:典型的“致命零” 【参考方案1】:

用这个替换你的代码。这是在 UIWebView 中加载网站的正常且最简单的方法。

import UIKit

class ViewController: UIViewController, UIWebViewDelegate 

@IBOutlet var webView: UIWebView!

override func viewDidLoad() 

    super.viewDidLoad()

    // Do any additional setup after loading the view.

    let url = URL(string: "http://www.apple.com")

    let request = URLRequest(url: url!)

    webView.loadRequest(request)

    webView.scalesPageToFit = true
 

如果你没有从你的 Main.storyboard 连接 webView,那么在你的 viewDidLoad() 函数中添加这行代码和上面的代码。

webView.delegate = self

【讨论】:

以上是关于Web 视图:在 loadRequest 中返回 nil 而在 URLRequest 中为 true的主要内容,如果未能解决你的问题,请参考以下文章

AdMob 错误 - 必须在调用 loadRequest 之前设置 GADBannerView 的 rootViewController 属性:

Swift 中的 Webview 管理

General-Block 56, 1024, 8, 244, 24 Memory Leaks using UIWebView loadRequest

UIWebView loadRequest 重用给出闪烁效果

UIWebView 不使用 loadRequest 加载网站的移动版本

UIWebview loadRequest不仅适用于iPhone X.