tableView での subView での設定値の受渡し

1 view
Skip to first unread message

kazumoto kakitani

unread,
Mar 24, 2010, 4:16:21 AM3/24/10
to macselw...@googlegroups.com
柿谷@KSPです
 
SMSの件ではお世話になりました、結局SMSの件は頓挫しています。
また新しい情報が入り次第しつこくフォローしていこうかとは思っています。
海外ではSMSの方がメジャーだそうなので。。。
 
また、質問というか参考意見を聞かせていただければと、
 
UITableViewで各個人のデータを管理して、そのsubViewで各個人の詳細データ
を表示するのはよくあるパターンですが
そのsubViewの誕生日などをsubsubViewで変更できるようにしているばあい。
誕生日のデータの変更値の受渡しをどのようにするのが一番スマートだと思われますか?
coredataを使う場合は、そのままDBに設定すればよいのですが
その他の場合はどれが一番スマートでしょうか?
 
①subViewからsubsubViewを呼出す際、subsubViewにsubViewのクラス自体の参照を設定し、subsubViewで値の確定があった場合にsubViewのプロパティを設定。
 
②subViewからsubsubViewを呼出す際、受渡し用のUserDefaultを仮に設定し受渡し。
 
③subViewからsubsubViewを呼出す際、subsubViewでの値の確定があった場合に呼ばれるメソッドを登録しておく。
 
④subsubViewで値の確定があって、navigationでpopして帰ってきた場合に
   subsubViewで確定された値を取り出す。
 
因みに今は③でやっていますが、どうもしっくりきません。
お暇なときにでもフォローしていただければと。
 
 
 

MACASEL森本

unread,
Mar 24, 2010, 9:43:02 PM3/24/10
to MacSel.WorkShop
まいど森本です。

> 海外ではSMSの方がメジャーだそうなので。。。
ほんと、そうですよね。日本は独自進化しすぎて世界的に見ると遅れてます。

この質問内容はCocoaのコーディングにある程度慣れてきた方が必ず経験するものです。
柿谷さんがしっくりこない理由は、突き詰めると①~③のどの方法をとっても subsubView クラスは subView クラスに依存してしまう
という事だと思います。これらの方法だと subView クラスに変更があった場合、subsubView クラスも修正しなければならない可能性が
高くなります。それはとても面倒です。

この質問を言い換えると、
”クラスに依存しないデータの受け渡し方法はあるのか?”
ということになると思います。(違ってたらごめんなさい)

ということで、クラスに依存しないデータの受け渡し方法、について回答します。

まず、方法としては、

①subViewからsubsubViewを呼出す際、subsubViewにsubViewのクラス自体の参照を設定し、subsubViewで値の
確定があ った場合にsubViewのプロパティを設定。

これで良いです。
問題は参照を設定する変数の型にあります。

参照を設定する変数の型に "プロトコル" を適応させることによってクラスに依存しないデータの受け渡しを実現することができます。

サンプルをアップしておきました。
TestProtocol.zip

kazumoto kakitani

unread,
Mar 25, 2010, 9:22:22 AM3/25/10
to macselw...@googlegroups.com
柿谷@KSPです

>これで良いです。
>問題は参照を設定する変数の型にあります。

>参照を設定する変数の型に "プロトコル" を適応させることによってクラスに依
>存しないデータの受け渡しを実現することができます。

>サンプルをアップしておきました。
>TestProtocol.zip

なるほど、こうやるのがスマートですね。。。

いつもありがとうございます。
今度なんかおごらせてください(笑)


 
Reply all
Reply to author
Forward
0 new messages