1

ビューコントローラーのビューに追加する 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 です。

4

3 に答える 3