LoginSignup
5
5

More than 5 years have passed since last update.

StoryBoardでUIViewクラスと自作クラスを結びつけてもinitWithFrameが呼ばれない

Posted at

UIViewクラスを継承したクラス(具体的にはUIButtonを継承していました)をStoryBoard上のViewと結びつけたところ、Xcodeによって自動作成されるイニシャライザが呼ばれませんでした。
Xcodeの設定とは「Identity and Type → Name」のことです。

自動作成されたのは以下の様なinitWithFrameイニシャライザです。

自作のUIView継承クラス.mの一部
- (id) initWithFrame:(CGRect)frame {
    //呼ばれない!!
}

調べてみたところStoryBoardで設定するとこのイニシャライザは呼ばれないみたいですね。
呼ばれるのはinitWithCoderイニシャライザのようです。

そこで以下の様なイニシャライザを追加したところ無事呼ばれていることが確認できました!

自作のUIView継承クラス.mの一部
- (id) initWithCoder:(NSCoder*)coder {
    self = [super initWithCoder:coder];
    if(self) {
        NSLog(@"こっちが呼ばれる??");
    }
    return self;
}
5
5
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
5
5