Est-ce qu'un UIView conserve son controller de vue

Un UIView conserve-t-il son controller de vue associé?

Par exemple, dans le code suivant la vue est conservée par la vue parente. Ce serait pratique si cette vue conservait aussi son ViewController pour que je puisse aller de l'avant et libérer le controller dans la méthode loadView.

- (void) loadView { ... MyViewController* ctrl = [[MyViewController alloc] init]; [self.view addSubview: ctrl.view]; [ctrl release]; } 

L'alternative, je suppose, est de garder une trace du controller en tant que variable d'instance et de le relâcher lorsque cela est approprié.

Merci

Non, ça ne marche pas. Vous avez besoin d'une variable membre, comme vous l'avez déjà mentionné.

(Une vue ne sait même pas son propre viewController)

Vous avez quelque chose en arrière: un controller de vue conserve sa vue, et non l'inverse. Généralement, un controller de vue gère la hiérarchie entière des vues qui sont sur l'écran set. Bien que iOS 5 vous permette d'utiliser plusieurs controllers de vue à la fois, cela nécessite plus que l'ajout de la vue d'un controller en tant que sous-vue de la vue d'un autre controller. Pour une explication facile du process, lisez l' aperçu du chapitre View Controllers du livre de Matt Neuberg, Programming iOS 5, 2nd Edition . Si vous ajoutez un controller de vue en tant qu'enfant d'un autre controller de vue, le parent conservera l'enfant et vous n'aurez pas besoin de créer une propriété distincte pour celui-ci. Mais lisez les documents avant de l'essayer afin d'éviter de vous gratter la tête.