I have a UITabBarController presented in Portrait mode. On one of the tabs I have a button that shows a UIViewController modally (A simple storyboard segue performs the action).
I want this modal view to be shown in Landscape mode, but I can't get it to turn automatically.
I have this in the modal views controller
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
I've added landscapeLeft to the .plist supported orientations (although this also allows the TabBar to be rotated which I don't want)
I've also added this to the ViewDidLoad of the modal view
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;
but I just can't get it to rotate by itself.
Thanks
EDIT ----
It seems shouldAutoRotate isn't even being called!
Also, I'm trying to detect the orientation and this code below always shows 2, regardless of orientation!
if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait) {
NSLog(@"1");
self.hostView.frame = CGRectMake(0, 60, 200, 255);
} else {
NSLog(@"2");
self.hostView.frame = CGRectMake(0, 45, 480, 255);
}
EDIT 2 ---
My bad. I guess I should have mentioned I was using iOS 6. The display rotates automatically on iOS 5. shouldAutorotateToInterfaceOrientation is deprecated so I need to read up on the new methods.