我想这是一个非常常见的错误,但是由不同的原因引起。这就是为什么我非常感谢你对我的帮助。
我正在尝试将XML源中的URL发送到包含webview的viewcontroller。
这是tableview控制器中的segue代码,其中包含文章标题:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "openPage" {
var indexPath: NSIndexPath = self.tableView.indexPathForSelectedRow()!
let wvc: WebViewController = segue.destinationViewController as WebViewController
var selectedURL: String = feeds[indexPath.row].objectForKey("link") as String
selectedURL = selectedURL.stringByReplacingOccurrencesOfString(" ", withString: "")
selectedURL = selectedURL.stringByReplacingOccurrencesOfString("\n", withString: "")
wvc.selectedLink = selectedURL
println(selectedURL)
}
}
openPage
将我的tableview连接到webview viewcontroller。我打印selectedURL,它完美地工作。以下是ViewController的代码,包括webview:
var selectedLink = ""
@IBOutlet var myWebView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
myWebView.loadRequest(NSURLRequest(URL: NSURL(string: selectedLink)!))
}
这会返回错误。我没有看到任何问题,我使用的教程具有确切的代码,运行正常,没有任何问题。 URL结构也非常好,因为我直接在webview中尝试了selectedURL的打印版本,它工作正常。我想问题是segue连接但是无法弄明白。
提前致谢!
答案 0 :(得分:0)
您应该检查NSURL是否真的是有效的URL。 Chrome或Safari等浏览器会接受许多无效的网址。
因此,如果您的网址有效,请检查您的网址。否则它将返回nil
,您必须检查您的网址:
let unwrappedUrl: NSURL? = NSURL(string: selectedLink!)
如果返回nil,您也可以尝试转义字符串:
selectedLink = selectedLink.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!