您好,如果有人可以帮助我,谢谢!
我有两个 View Controller HomeController
和 TableController
在 HomeController 中,我有一个 webview,当我转到 TableController 并调用一个函数来加载另一个对 webview 的请求时。 WebView 返回零。
HomeController 是应用程序的主屏幕,它是一个 webview。 TableController 是应用程序左侧汉堡菜单中的表格。当我打开它并单击一个项目时,我想获取该项目的 url 并使用该 url 发送具有相同 HomeController 的请求。但是当我到达 connectUrl()
时,我得到了一个 fatal error ,这是因为 webView 是 nil。
编辑:在下面回答
代码如下:
表格 Controller
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var HomeViewController: HomeController {
return self.storyboard?.instantiateViewControllerWithIdentifier("homeController") as! HomeController
}
let url = self.item[indexPath.item].url
HomeViewController.connectUrl(url!)
}
家庭 Controller
class HomeController: UIViewController{
static let sharedInstance = HomeController()
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let preferences = WKPreferences()
preferences.javaScriptEnabled = true
let configuration = WKWebViewConfiguration()
configuration.preferences = preferences
webView = WKWebView(frame: view.bounds, configuration: configuration)
self.view.addSubview(self.webView)
}
func connectUrl(url: String){
let url2 = NSURL(string: url)
let req = NSURLRequest(URL: url2!)
print(req)
self.webView!.loadRequest(req)
}}
最佳答案
控制台是否有域错误?/如果有
将其添加到 plist。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
关于ios - 从另一个 Controller 调用函数后,webview 变为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32841950/