[iPhone] delegateを自作する。
2014/06/02
既出のものですが、備忘録として起稿します。
(文章はうまくないので伝え方が間違ってるかもしれませんが、ご了承ください。)
プロジェクト内でいろんなことをやる場合に、
どうしても用意されているdelegateだけではできないことも出てきます。
以下のように記述すれば、delegateを簡単に自作することがでます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // hoge.h #import @protocol testDelegate; @interface hogeViewController : UIViewController { id<testDelegate> delegate; } @property (nonatomic, retain) id<testDelegate> delegate; @end @protocol testDelegate @optional - (void)fooooo; @end |
1 2 3 4 | // hoge.m @synthesize delegate; // ---> delegateしている-(void)testに委譲される。 |
上記のようにしてやると、hogeViewControllerから他に委譲できるようになります。
委譲する場合には
1 | [delegate fooooo]; |
です。
またdelegateを受ける側は、
まず、ヘッダーファイルの記述に
@interfaceの部分にtestDelegateを追加して。
メソッドファイルのほうに
1 | hogeViewController *hoge = [[hogeViewController alloc] initWithNibName:nil bundle:nil]; |
みたいな記述の後に、
1 | hoge.delegate = self; |
と記述してdelegateを受けれるようにします。