2016-04-27 8 views
-2

私は基本的に小さなブラウザを構築しています。ある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"をアンラップしている間に何も見つけなかったという致命的なエラーが発生します。

+2

コードはコードではなく、画像ではありません – Wain

+0

コード内のセグの識別子があなたのストーリーボードのものと一致するかどうかチェックしましたか? –

+0

** 1)**実際には、セグリングする前にtextFieldのテキストをアプリ内に設定していますか、空白のままにしていますか? ** 2)) 'textField.isEmpty'条件を' viewDidLoad() '関数に移動し、そこにある可能性のあるnil値を処理してみてください。 ** 3。)** @Wainの要請により、画像の代わりに実際のコードを投稿してください。 – ZGski

答えて

3

NSURL(string: "\(XXX)")を使用しないでください。文字列の説明にはオプションであるためです。代わりに文字列NSURL(string: textField!)を使用してください。

+0

ありがとうございました。現在は動作していますが、なんらかの理由でhttp://www.google.comでは機能しませんが、http://www.youtube.comが機能します。任意の負荷が – kevini15

+0

はまさに私は申し訳ありませんが、それはどういう意味 – Wain

+0

...あなたはURL、セッション応答、データ、Web表示のエラーから文字列をデバッグする必要があります... Info.plistファイルで有効になっていますか?このエラーは以前私に起こったことはありません。なぜyoutube仕事が、Googleではない? 「(それは私のWebViewおよびオプションで「ゼロ」を与え – kevini15

関連する問題