2010-11-25 24 views
3

J'ai un UIViewController qui implémenteModal Voir en utilisant UIModalPresentationFormSheet apparaît offscreen

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

Ensuite, j'essaie au popup modal au-dessus de ce point de vue:

ModalViewController *modalViewController = [[ModalViewController alloc] init]; 
modalViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
modalViewController.modalPresentationStyle = UIModalPresentationFormSheet; 
[mainViewController presentModalViewController:modalViewController animated:YES]; 

Si je lance le modal alors que le L'ipad est en portrait, ça marche bien. Mais quand je le garde en mode paysage et que j'essaie de lancer le modal, le modal apparaît à moitié en haut à droite de l'ipad. Des idées?

Répondre

4

Dans ModalViewController, implémentez shouldAutorotateToInterfaceOrientation de la même manière que dans mainViewController (les deux doivent être d'accord sur les orientations qu'ils prennent en charge).

+1

Qu'en est-il d'un contrôleur de vue qui n'apparaît pas centré lorsque je le présente UIModalPresentationFormSheet? Avez-vous une idée pourquoi? –

+0

Désolé, non. Suggérez-vous de poser une nouvelle question avec du code et d'autres détails. – Anna

+1

Alors qu'est-ce que j'ai fait, implémenté ce même ViewController mais en tant que TableView, et il se développe sur FormSheet et est maintenant centré √ :) –