ビューコントローラーのビューに追加する 2 つのサイド バイ サイド ビューを作成したいと考えています。コードを繰り返さないようにするために、2 つのビューを作成する汎用メソッドを作成しようとしています。ただし、このコードは機能しません。view1 と view2 はどちらも ivar です。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self makeView:view1];
[self makeView:view2];
}
- (void)makeView:(UIView*)view {
CGRect frame = self.view.bounds;
frame.size.height = frame.size.height/2;
if (view == view2) {
frame.origin = CGPointMake(0, frame.size.height);
}
view = [[UIView alloc] initWithFrame:frame];
[self.view addSubview:view];
}
この問題は、view == view2という行、ある種の変数参照エラーに対処する可能性があると思います。view == view2 は常に true と評価されるため、view1 は表示されません。コードの後半部分では、view1 と view2 は nil です。