私は基本的に小さなブラウザを構築しています。あるVC上では、リンクをtextFieldに入れ、ボタンを使用してWebViewが見つかった他のVCにセグを行います。prepareForSegueを使用してViewControllers間でデータを渡すことはできません
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"をアンラップしている間に何も見つけなかったという致命的なエラーが発生します。
コードはコードではなく、画像ではありません – Wain
コード内のセグの識別子があなたのストーリーボードのものと一致するかどうかチェックしましたか? –
** 1)**実際には、セグリングする前にtextFieldのテキストをアプリ内に設定していますか、空白のままにしていますか? ** 2)) 'textField.isEmpty'条件を' viewDidLoad() '関数に移動し、そこにある可能性のあるnil値を処理してみてください。 ** 3。)** @Wainの要請により、画像の代わりに実際のコードを投稿してください。 – ZGski