LoginSignup
8
9

More than 5 years have passed since last update.

Delegateメソッドを実装したときのメモ

Hogeクラス

今回は、Hogeクラスであるイベント(onTapEvent)が起きたときに、Fugaクラスに実装しているデリゲートメソッド(hogeDelegateMethod)を呼び出す例。

Hoge.h
#import <UIKit/UIKit.h>


@protocol HogeDelegate
//Fugaクラスに実装するメソッド
- (void)hogeDelegateMethod;
@end

@interface Hoge : UIViewController
@property (weak,nonatomic) id <HogeDelegate> delegate
@end
Hoge.m
#import "Hoge.h"


@interface Hoge ()

@end

@implementation Hoge

- (void)viewDidLoad
{
    [super viewDidLoad];
}


//onTapEventが実行されるたびにデリゲートメソッドを呼び出す
- (void)onTapEvent
{
    //Fugaクラスに実装してあるHogeDelegateMethodを呼び出す
    [self.delegate hogeDelegateMethod];
}

@end

Fugaクラス

Fuga.h
#import <UIKit/UIKit.h>
#import "Hoge.h"
@interface Fuga <HogeDelegate>

@end

今回は、初期化とともにHogeクラスのインスタンスを生成したが、別にインスタンスを生成するタイミングはいつでもOK

Fuga.m
#import "Fuga.h"

@interface Fuga ()

@end

@implementation Fuga

//初期化とともにHogeクラスのインスタンスを生成し、delegateプロパティに自身(Fugaクラスのインスタンス)を設定
-(id)init{
    if((self = [super init]) != nil){
        Hoge *hoge = [[Hoge alloc] init];
        hoge.delegate = self;
    }
    return self;
}

//Hogeクラスから呼び出されるデリゲートメソッド
- (void)hogeDelegateMethod
{
    NSLog(@"デリゲート");
}

@end

参照

Objective-Cの基礎(プロトコル定義)
カスタマイズしたUITableViewCellから自前のイベントを受け取る
Objective-Cでprotocolとかdelegateとかいい感じに警告をなくす

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9