Comment cacher complètement un UIView en changeant d'orientation?

Je veux concevoir une vue controleur qui automatiquement affiche/cache une sous-vue quand en orientation paysage. Je veux la sous-vue à disparaître complètement et d'autres sous-vues de prendre son espace.

À l'aide d'un UIViewController, j'ai écrit un code qui définit le sous-vues' image de la propriété et de l'appeler sur:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration;

Cela résout le problème la plupart du temps, mais a des problèmes lorsque le changement d'orientation qui se passe lorsque la vue n'apparaît pas.
pour contourner cela, je suis également de l'appel de la méthode de redimensionnement sur:

- (void)viewWillAppear:(BOOL)animated;

mais cela a des problèmes dans certains cas rares (impliquant un UISearchDisplayController) et je suis donc également l'appel de la méthode de redimensionnement sur

- (void)viewDidAppear:(BOOL)animated;

Comme vous pouvez le comprendre, je ne suis pas d'accord avec ce code et je suis à la recherche d'un mieux/plus performantes moyen pour ce faire.

Des idées?

source d'informationauteur Panagiotis Korros