segue で画面遷移するときに値を渡せない・・・

Xcode で画面を作り、segue で接続してやると特にプログラムしなくても画面遷移ができてとても便利なんですが、画面遷移する折に遷移先に値を渡してやりたい時があります。

そんな時どうするのかよくわからなかったんですが、いろいろ調べてみた結果、以下のようにするとすんなりだと。

1. 遷移先のクラスに、値受け取り用に property を作っておく

2. 遷移元では、prepareForSegue メソッドを実装。segue が複数ある時のために、メソッド内では identifier で名前を取得して判別すべし。

3. prepareForSegue メソッド内では [segue distinationViewController] とすれば、遷移先のクラスが取得できる。このクラスのプロパティに必要な値をセットしよう。

文字で書くとまさにこのようなことなんです。決して間違いではありませんが、すんなり値を渡せずかなりはまりました。理由は、遷移先の ViewController を設定した際、m ファイルと h ファイルは作ってあったのですが、class 名が null で設定していなかったので、遷移してエラーになっていました。

わかってしまえば簡単なことですが、分かるまでが大変な苦労で、おや?配列は渡すことができないのか?いやそんなことはない、ネット検索したら渡している例がある、など、ホント、理由がわかるまでに苦労しました。

今日の教訓:ViewController で画面を新しく作ったら、class 名を設定することを忘れてはいけない。