カスタムクラスにdelegateを実装してみる。
.hファイル
@protocol LoginViewControllerDelegate;
@interface LoginViewController : UIViewController {
id delegate;
}
@property (nonatomic, assign) id <LoginViewControllerDelegate> delegate;
-(IBAction) changeView:(id)sender;
@end
@protocol LoginViewControllerDelegate
-(void) logout;
@end
・デリゲートのプロトコル
@protocol デリゲート名;
・デリゲートのインターフェイス
id <デリゲート名> delegate;
・デリゲートのgetter、setter
@property(nonatomic, assign) id <デリゲート名> delegate
assignしてsetterで単純代入している。 retainにしないのは、循環参照になりオブジェクトが解放されずメモリリークになるかららしい。 ※参考:delegate オブジェクトは retain すべきではない
・デリゲートメソッド、プロパティの宣言
@protocol デリゲート名 ... @end