2010-11-25 11 views
3

ich eine UIViewController, dieModal Ansicht UIModalPresentationFormSheet mit erscheint Offscreen

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

Dann implementiert, ich versuche, eine modale oben auf dieser Ansicht: Pop-up

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

Wenn ich die modal starten, während die iPad ist im Porträt, es funktioniert gut. Aber wenn ich es in der Landschaft halte und versuche, das Modal zu starten, erscheint das Modal halb außerhalb des Bildschirms rechts oben auf dem iPad. Irgendwelche Ideen?

Antwort

4

Implementieren Sie in ModalViewController shouldAutorotateToInterfaceOrientation auf die gleiche Weise wie in mainViewController (beide müssen die von ihnen unterstützten Ausrichtungen vereinbaren).

+1

Was ist mit einem View-Controller, der nicht zentriert angezeigt wird, wenn ich ihn UIModalPresentationFormSheet präsentiere? Hast du eine Ahnung warum? –

+0

Entschuldigung, nein. Schlage vor, dass du eine neue Frage mit Code und anderen Details stellst. – Anna

+1

Also was habe ich getan, implementiert denselben ViewController aber als TableView, und es erweitert auf FormSheet und ist jetzt zentriert √ :) –