だんだん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^)/");
}