2017-03-14 22 views
0

ストーリーボードのコンテナビューから作成したビューコントローラにプロパティを渡したいとします。問題は、どうやってそれをやることができるのか分からないことです。Xcode - ストーリーボードのコントローラを表示するプロパティを渡す

青色の四角形は、2つのコンテナビューを持つ領域です。それぞれがビューコントローラを参照しています(1つはカスタムテーブルビューコントローラ、上部は興味があり、もう1つはビューコントローラです) 。

問題は、私のカスタムテーブルビューコントローラがいくつかのプロパティを必要とすることです。ストーリーボードをインスタンス化するクラスのプロパティを渡したいと思っています(ストーリーボードはtoherクラスから呼び出されます)。コンテナビューを含むビューコントローラは、以下に示すようにインスタンス化されます:

enter image description here

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Phenotype" bundle:nil]; 
     GeneralViewController *vc = [sb instantiateViewControllerWithIdentifier:@"phenotype"]; 
     [vc setProperty:property]; // I would like to pass this property to the custom table view controller. 
     [self.navigationController pushViewController:vc animated:YES]; 

は、私はこの時点でプロパティを設定するstroyboardをインスタンスクラスからテーブルビューコントローラを取得しよう

TableViewController *tablevc = [sb instantiateViewControllerWithIdentifier:@"table"]; 
    [tablevc setProperty:property]; 

...しかし成功しません。

ストーリーボードをインスタンス化しているビューコントローラからカスタムテーブルビューコントローラのプロパティに直接アクセスする方法はありますか?あなたの助けのための

おかげで、

答えて

3

は上に青い四角形からのtableViewにご埋め込みセグエを選択し、それをセグエ識別子が「ABCD」であると言うことができます:)セグエ識別子を与えます。あなたのViewController有する容器で

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if segue.identifier == "abcd" { 
      let tableView : YourTableViewClass = segue.destination as! YourTableViewClass 
      //pass whatever params want :) 
     } 
    } 

EDIT

組み込みseguesを書くだけで、他のあなたがプログラムまたはいくつかのイベントどこをトリガーそれらを実行する必要がありますseguesという1つの例外を除いて、他のseguesのように振る舞いますコンテナがロードされたときに埋め込みセグが自動的に実行されるため、次のようになります。

したがって、segue識別子を持つことができ、prepareForSegue jusあなたは他のセグのためにそれをやっているようにt:

+0

ありがとう!あなたは私の一日を作りました:-)。私はストーリーボードのファンではありませんでした。どうも!! – Trichophyton

+0

私の答えはあなたのためにいくつかの使用されてうれしかった:)ハッピーコーディング –