I have a reasonably simple split view application adapted from iPhone code. The main functionality is in shared classes with iPhone and iPad specific classes inheriting and augmenting the code. All the classes used in the iPad app have the following:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Overriden to allow any orientation. return YES; }
The main view controller consists of a UIToolbar and a UITableView. The responds to rotations correctly at every stage bar two. If I present a modal dialog from this view:
navigationController = [[UINavigationController alloc] initWithRootViewController:tvc]; navigationController.modalPresentationStyle = UIModalPresentationFormSheet; [self presentModalViewController:navigationController animated:NO];
Everything works as expected including rotating the device until I dismiss the dialog in any way with:
[self dismissModalViewControllerAnimated:YES];
At which point my main view rotates 90 degrees. I've looked into the settings in nib files and it all seems to be fine. Any advice? A modal dialog presented by the UITableView on the left hand side does not present this problem.
Bonus Question:
I've discovered the modal dialog presented by the left hand view does have a glitch. But only one. If it is presented by the popover view in portrait mode and the device is rotated you get a rather impressive graphical glitch as it rotates out of the view for ever!