2016-10-03 6 views
0

現在、私のアプリではswift(完全に新しい)を学ぶために働いています。そして、私はちょうど起こることができないエラーを見つけた。 私は2つのビューコントローラを持つ私のストーリーボードに2つのビューを持っています。ViewController &設定。エラーUIViewControllerにはメンバーがありません

「設定」ビューにはtextfieldがあり、「ViewController」ビューにはラベルがあります。私は「のViewController」に私のラベルに「設定」でテキストフィールドから

をテキストを渡したい

は現在、私は次のエラーを取得する:

value of type 'UIViewController' has no member 'ViewController'

私のコードは、入力のために多少のようになりますフィールド:ラベルの

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    var secondVC: ViewController = segue.destination.ViewController as ViewController 

    secondVC.receivedString = textField.text! 
} 

class ViewController: UIViewController { 

@IBOutlet var city: UILabel! 
var receivedString: String = "" 


override func viewDidLoad() { 
    super.viewDidLoad() 


    label.text = receivedString 
} 

「label.textは」それだけでsegue.destinationsegue.destination.ViewControllerではありませんスウィフト3で先viewControllerを取得するには...あまりにも私に

答えて

1

を未解決の識別子を与えます。 2番目のエラーのために

var secondVC = segue.destination as! ViewController 

あなたはcity.text = receivedString

+0

うーん、それは私が言うことを決定した場合、エラーを削除しなかったしなければならない名前cityないlabelUILabelを宣言している: オーバーライドfuncがセグエのために(準備します。 UIStoryboardSegue、送信者:Any?){ secondVC = segue.destinationを! ViewController secondVC.label = textField.text! –

+0

私は何をしたのでしょうか?そうするのがベストプラクティスではありませんか? –

+0

@JeppeCあなたは 'receivedString'オブジェクトを持つ文字列を渡して' prepare(for::sender:) 'のためにデータを渡す正しい方法である' viewDidLoad'に都市ラベルのテキストを割り当てます。UILabelオブジェクトは初期化されませんまだ。 –

関連する問題