1

UIView は関連付けられているビュー コントローラーを保持しますか?

たとえば、次のコードでは、ビューは親ビューによって保持されます。このビューにも ViewController が保持されていると便利です。これにより、loadView メソッドでコントローラーを解放できるようになります。

- (void) loadView {

  ...

  MyViewController* ctrl = [[MyViewController alloc] init];
  [self.view addSubview: ctrl.view];
  [ctrl release];

}

別の方法は、コントローラーをインスタンス変数として追跡し、適切なときに解放することだと思います。

ありがとう

4

2 に答える 2

3

いいえ、そうではありません。すでに述べたように、メンバー変数が必要です。

(ビューはそれ自体の viewController さえ知りません)

于 2012-04-11T14:15:09.620 に答える
0

ビュー コントローラーはそのビューを保持しますが、その逆ではありません。通常、1 つのビュー コントローラーが、画面上にあるビューの階層全体をまとめて管理します。iOS 5 では一度に複数のビュー コントローラーを使用できますが、正しく使用するには、1 つのコントローラーのビューを別のコントローラーのビューのサブビューとして追加するだけでは不十分です。プロセスの簡単な説明については、Matt Neuberg の著書Programming iOS 5, 2nd Editionの View Controllers の章のプレビューをお読みください。1 つのビュー コントローラーを別のビュー コントローラーの子として追加すると、親は子を保持するため、別のプロパティを作成する必要はありません。

于 2012-04-11T15:01:23.483 に答える