Delegateの実装
Delegateを実装したいときは、実装したいクラスに下記をコピペ。
Delegateを実装したいけど詳しいことはわからない。
そんなときは、呪文だと思って下記ルールに従って実装すればサクッと実装完了
動作を覚えてから、その意味を知るのも悪くはないと思う。
「CustomViewController」となっている部分は、実装したクラス名に置き換える。
Delegateの基本実装 .h
#import <UIKit/UIKit.h>
//▼この行追加
@protocol CustomViewControllerDelegate;
@interface CustomViewController : UIViewController
//▼この行追加
@property (nonatomic, assign) id < CustomViewControllerDelegate > delegate;
//公開メソッド、プロパティ実装場所
@end
//▼最終行まで追加
@protocol CustomViewControllerDelegate <NSObject>
@required
//必須DelagateMethods Delegateを受ける親クラスで実装しないと警告が出る。
- (void)CustomVC_ReqiredDelegate:(CustomViewController*)controller;
@optional
//オプショナルDelagateMethods Delegateを受ける親クラスで実装するしないは自由。
- (void)CustomVC_OptionalDelegate:(CustomViewController*)controller;
@end
Delegateの基本実装 .m
//Delegateを受けるメソッドが実装されているかどうか確認する
if ([_delegate respondsToSelector:@selector(CustomVC_ReqiredDelegate:)]) {
//Delegateを実際に発生させる。対象メソッドが実装されていないと落ちるので注意。[_delegate CustomVC_ReqiredDelegate:self];
}