UI の大部分が Xcode のストーリーボードを介してセットアップされるアプリケーションに取り組んでいます。私がやりたいことの 1 つは、Interface Builder を介してアクセスできるデフォルトの「Stencilled」画像ではなく、TabBar の UITabBarItems に「Finished」画像を指定することです。
私の質問は、これを行うのに最適な場所はどこかということです。現在、ストーリーボードからアーカイブを解除する必要があるため、awakeFromNib で実行していますが、代わりに initWithCoder: を使用する必要があるかどうかはわかりません。それは問題ですか?
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if(self) {
UIImage *tabIn = [UIImage imageNamed:@"TAB_IN"];
UIImage *tabOut = [UIImage imageNamed:@"TAB_OUT"];
UITabBarItem *tabBarItem = [self tabBarItem];
[tabBarItem setFinishedSelectedImage:tabOut withFinishedUnselectedImage:tabIn];
[tabBarItem setTitle:@"TWO"];
}
return self;
}
また
- (void)awakeFromNib {
[super awakeFromNib];
UIImage *tabIn = [UIImage imageNamed:@"TAB_IN"];
UIImage *tabOut = [UIImage imageNamed:@"TAB_OUT"];
UITabBarItem *tabBarItem = [self tabBarItem];
[tabBarItem setFinishedSelectedImage:tabOut withFinishedUnselectedImage:tabIn];
[tabBarItem setTitle:@"TWO"];
}
initWithCoder:
アウトレットとアクションがまだ接続されていないときに、ニブ(ストーリーボードに含まれる)からオブジェクトをアーカイブ解除する開始時に呼び出されることを理解しています。awakeFromNib
また、アーカイブ解除プロセスの最後に が呼び出され、viewController を使用できるようになったことを知らせることも理解しています。awakeFromNib
アウトレットとアクションがまだ接続されていない場合に問題が発生しないため、使用しても問題が少なくなる可能性がありますが、それは本当にやりたいことに依存していると私は感じています.
編集:
これを言い換えると、どのような状況をinitWithCoder:
対置としてawakeFromNib
、またはその逆として使用しますか?