だんだんObjective-CというかXcodeの気持ちがわかってきた順加です。
UIViewを親クラスとしたカスタムクラスを作って、storyboardに配置したインスタンスに関連付けました。
しかしながら、Xcodeがデフォルトで書いてくれたコードには、ここに初期化処理を書いてねみたいなことが書いてあるのに、そのメソッドが呼ばれる気配がありません。
- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code NSLog(@"ここだよ"); } return self; }
デフォルトのコードの中には、コメントアウトされたdrawRectってメソッドがあるけど、ここに初期化処理を書くのは違う気がする。
よくよく調べてみたところ、storyboardを使った場合には、initWithFrameメソッドは呼ばれず、initWithCoderメソッドが呼ばれるようでした。
なのでinitWithFrameは消してしまって、下記のようにすればOK。
- (id)initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder]; if(self){ [self myInit]; } return self; } - (void)myInit { NSLog(@"\(^o^)/"); }
コメントを残す