複数のviewControllerで、変数の受け渡しを行うには?

2014年8月2日

xcode

今回の備忘録は、iPhone-アプリで複数画面が遷移するパターンの場合、変数を引き継ぎたい事ってよくあるよね〜。 例としては、viewController1に書かれた変数をviewController2で利用するという感じ。 例えば、具体的には、tableControllerで選択したあと、table-cellのタイトルを取得したい時など。

ググってみて、他サイトを参考にやってみました。

http://cocoadays.blogspot.jp/2010/07/uiviewcontroller.html ここでは、「synthesize」を使って受け渡してます。 しかし、 いろいろやってみたがスマートな方法に辿り着かず、appDelegate上でのグローバル変数を使うことにしました。 記述する方法は以下のとおりです。 @property (nonatomic) NSString *hoge; @synthesize hoge; //* 値の書き込み(どのviewControllerでもOK) AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; delegate.hoge = cell.textLabel.text; //* 値の読み込み(どのviewControllerでもOK) AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; NSLog(@"%@",delegate.hoge); とりあえず、3時間ぐらいかかって、悩んだ挙句のやっつけ作業になったけど、VCに依存しないこの方法が一番いいのかも・・・と言い聞かせてます。 今度はシングルトンを勉強して、もう少しスマートにしたいです。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。