2016-10-28 16 views
-2

私は新しいアプリケーションを作成しています。1つのビューコントローラから別のビューコントローラにテキストを転送する方法

1つのビューコントローラにテキストフィールドがあり、別のビューコントローラ(ViewControllerクラスの両方のView Controller)にラベルがある場合、テキストフィールドに何かを入力してから、次のViewControllerに移動してテキストを表示できます?あなたが先コントローラのプロパティを設定しセグエの準備で元のコントローラで

+0

[Suragach's answer](http://stackoverflow.com/a/31934786/4029561)は、迅速に対応しています。 – NSNoob

答えて

1

:あなたの先のコントローラのビューで

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if let detailViewController = segue.destination as? DetailViewController { 
      detailViewController.titleText = mylabel.text 
     } 
    } 

はあなたのラベルフィールドに、このプロパティを割り当ててロードしました。ラベルのviewDidLoadが呼ばれるまで初期化されていることが保証されていないので、あなたがprepareForSegueであなたのラベルに直接割り当てることはできません

var titleText = "" 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     label.text = titleText 
    } 

注意。なぜその価値が財産になるのか適切なモデルビューの分離はまた、1つのコントローラが別のコントローラのビューにとにかく書き込むべきではないことを指示する。

+1

さらに重要なことに、可能であれば、ラベルを直接更新しないでください。 – rmaddy

関連する問題