2010-07-29 19 views
0

Chaque fois que mon application est pivotée, seul le viewController dont j'ai ajouté la vue en tant que sous-vue à la mainwindow obtient sa propriété interfaceOrientation mise à jour, le reste ignore le fait que le périphérique a été pivoté.Seules les sous-vues directes de la vue MainWindow sont orientées par iOS?

Est-ce ma responsabilité de notifier d'autres objets du changement, et si oui, quelle est une bonne façon de le faire?

J'ai regardé dans l'arrangement d'interfaceOrientation de mes enfants-viewcontrollers mais c'est en lecture seule.

Merci à l'avance,

Répondre

0

Je trouve que l'appel

willRotateToInterfaceOrientation 

et/ou

didRotateFromInterfaceOrientation 

du contrôleur de vue que vous allez présenter travaillé pour moi. Dans mon cas, j'utilisais un contrôleur de navigation, donc il était facile de suivre ce qui allait être montré à l'utilisateur ensuite. Voici un code de mon projet.

- (void)navigationController:(UINavigationController *)navigationController 
     didShowViewController:(UIViewController *)viewController 
     animated:(BOOL)animated { 
    [viewController willRotateToInterfaceOrientation: 
     [self interfaceOrientation] duration:0];  
} 
+0

J'ai fait la même chose! Fonctionne plutôt bien, c'est peut-être le meilleur moyen. Certainement le plus logique. :) – Nick