- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了一个奇怪的问题 - 我无法在单独的 View Controller 的后台加载 UIWebView
。具体来说,我有一个 UITableViewCell
,它带有一个按钮,用于在它后面的 View Controller 中加载 UIWebView。但是,我不断收到错误消息“在展开可选值时发现 nil”...
这是我的代码:
func loadWebView(URLString:String) {
print("the urlstring is \(URLString)")
let theRequestURL = NSURL (string: URLString)
let theRequest = NSURLRequest (URL: theRequestURL!)
fullScreenWebView.loadRequest(theRequest)
}
打印语句生成正确的 URL,因此问题不在于未传递 URL 字符串。
此外,如果我从定义它的 View Controller 加载 UIWebView
,它会完美运行。我猜这个问题与调用 loadWebView()
时不是正确的 View Controller 有关...我读过 Unable to display URL in WebView from another view controller ,这有点帮助。
我做错了什么?
最佳答案
使用
调用loadRequest
时
SecondViewController().loadWebView("URL STRING HERE")
您正在创建 SecondViewController 的新实例,而不是使用已加载的实例。
您需要对已在内存中的实例调用 loadRequest
,并初始化您的 UIWebView
。
为此,您可以获取先前 View Controller 的引用并调用方法来加载您的请求
假设 SecondViewController 是 UIWebView 的 Controller
将此添加到顶部 View Controller (带有 UITableView
的 Controller )
func loadWebView(URLString:String) {
print("the urlstring is \(URLString)")
let theRequestURL = NSURL (string: URLString)
if let theRequest = NSURLRequest (URL: theRequestURL!) {
//In case you push view controller on a navigation stack
let vc : SecondViewController = self.backViewController()
vc.loadWebView(theRequest)
}
}
//Get previous view controller on navigation stack
func backViewController() -> UIViewController? {
if let stack = self.navigationController?.viewControllers {
for(var i=stack.count-1;i>0;--i) {
if(stack[i] == self) {
return stack[i-1]
}
}
}
return nil
}
现在在您的SecondViewController中添加
func loadWebView(request : NSURLRequest) {
// Replace customWebView with the reference variable of your `UIWebView`
customWebView.loadRequest(request)
}
关于ios - Swift 2 - 无法在单独的 ViewController 中加载 UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35355237/
我是一名优秀的程序员,十分优秀!