

今、二つの画面のデータの受け渡しについて困っています。

一つ目の画面から二つ目の画面に遷移した際に表示される内容を一つ目の画面のTableViewで選択されたセルによって変えたいです。  
二つ目の画面の内容はその中で変更できるようになっています。

現在の状況は画面遷移ができ二つ目の画面で内容を変更しNSUserdefaultsで保存しているのですが、一つ目の画面のTableViewのどのセルから遷移しても同じ内容が表示されます。

ただセグエで遷移しているので当たり前なのですが、選択されたセルごとに違った内容が表示されるように保存したいです。

どなたかよろしくおねがいします。


CC BY-SA 3.0
2015-04-26T05:45:35.860
9560
2015-07-30T18:07:01.150
8802
question
objective-c iphone
画面遷移の際のデータについて


たたき台のコードがありませんので、以下は抽象的な説明になります。ご容赦ください。

  1. 1つ目の画面(ビューコントローラ)で選んだセルに紐づいた情報を設定できるプロパティを2つ目の画面に用意します。(2つ目の画面のヘッダファイルに宣言する)
  2. 1つ目の画面のセルから2つ目の画面へセグエを張り、identifierも設定しておきます。
  3. 1つ目の画面のprepareForSegue:sender:で引数のセグエが設定したidentifierのものだったら、1つ目の画面で選択したセルから2つ目の画面に渡したい情報をどうにかして取得して、その情報をセグエのdestinationViewControllerのプロパティ、すなわち2つ目の画面のプロパティに設定します。(destinationViewControllerは2つ目の画面のヘッダファイルをimportした上でキャストしないと用意したプロパティが見えないと思います)
  4. 2つ目の画面では設定されているプロパティの情報を参照してビューを構築します。

もし、2つ目の画面で変更した内容を確定して戻った先の1つ目の画面にその変更を反映させる必要があるなら、1つ目の画面のそばに変更結果を通知するデリゲートプロトコルと2つ目の画面にそのデリゲートプロパティを定義して、2画面目の最後でそのプロトコルのメソッドを呼び出すことになると思います。

テーブルビューではありませんが参考になりそうな解説を見つけましたので学習のとっかかりとしていかがでしょうか。

> StoryBoardを利用した制御関連コード  
>  <http://qiita.com/kazuma1107/items/d9a8fe2309d6a0fd91cd>


CC BY-SA 3.0
2015-05-01T15:20:51.023
9760
2015-05-01T15:20:51.023
7283
9560
answer