使用prepareForSegue在ViewControllers之间传递数据不起作用

时间:2016-04-27 14:01:27

标签: ios swift uitextfield nsurl

所以我基本上构建了一个小浏览器。在一个VC上,您将链接放入textField并使用一个按钮转到找到webView的另一个VC。

import Foundation
import UIKit

class ViewOne:UIViewController {
    @IBOutlet weak var textField: UITextField!
    @IBAction func clear(sender: AnyObject) {
    textField.text = ""
    }
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "go" {
            let controller:ViewTwo = segue.destinationViewController as! ViewTwo
            controller.textField = self.textField.text! as String
        }
    }
}


import Foundation
import UIKit

class ViewTwo:UIViewController {
@IBOutlet weak var webView: UIWebView!

override func viewDidAppear(animated: Bool) {

    let url = NSURL(string: textField!)
    let task = NSURLSession.sharedSession().dataTaskWithURL(url!) { (data, response, error) in
        if let urlContent = data {
            let webContent = NSString(data: urlContent, encoding: NSUTF8StringEncoding)
            dispatch_async(dispatch_get_main_queue(), { 
                self.webView.loadHTMLString(String(webContent!), baseURL: nil)
            })
        }
    }

    task.resume()

    if textField?.isEmpty == true {
        print("nothing received")
    } else {
        print("\(textField)")
    }

}

var textField:String?
}

似乎数据不会通过。我得到了一个致命的错误,说NSURLSession在展开时没有发现任何内容" url"。

1 个答案:

答案 0 :(得分:3)

不要使用NSURL(string: "\(XXX)"),因为字符串的描述将包含它是可选的。而只是使用字符串NSURL(string: textField!)