2012年06月08日

[iOS] delegate(デリゲート)について

iOS SDKでObjective-Cを使うにあたって、必ずといっていい程に登場するキーワードがあります。
それが、delegate(デリゲート)です。

参考書を読んでなんとなく概念はわかったつもりなのですが、実際のプログラムの書き方が
よくわかっていませんでした。
シンプルな例として、下記の参考サイトの説明がわかりやすかったです。

Delegateについて :
http://i.studio23c.com/?p=433

UIViewでデリゲートを実現しようとしたときは、こちらの参考サイトがわかりやすかったです。

UIViewのタッチイベントをUIViewControllerにデリゲートする
http://d.hatena.ne.jp/eth0jp/20100803/1280777298

何をしたかったのかというと、以下のstoryboardがあります。

スクリーンショット 2012-06-08 23.30.29.png

画面右上にある通り、Custom Clas = MyView(UIViewを継承) としています。

やりたいことは、
・MyView(オリジナル処理を記述) でタッチを取得
・MyViewから上位のViewController内の関数を呼ぶ ※ViewControllerでしか使えない命令があったため
でした。

これを実現できたのがデリゲートでした。

UIViewを使用した理由は、もともと用意されてあるUIボタンを押したときに反応がイマイチだったからです。
UIボタンだけだったらViewControllerで完結したのですが、サクサク感を実現させるためにこの方法を選択しました。

まだ画面が1つだから簡単に済むけど、画面が複数になったときには色々と複雑になりそうです。
そのときにまた悩もう。
posted by be-style at 23:49| Comment(0) | iOS
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]