Reputation: 4431
So i'm trying to make some view rotate but the method is not even called and i'm so frustrated. Here is the method:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
I also tried:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return ((interfaceOrientation == UIInterfaceOrientationPortrait) ||
(interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}
My info.plist looks like this:
What i'm i missing ? I've looked at all the answers i found here in SO but still the problem remains.
Upvotes: 0
Views: 1843
Reputation: 69027
Possibly you need specify also portrait orientation as supported in your info.plist. (Actually it is possible that also removing those orientation keys entirely will do).
By the way: which kind of app are you building? do you use a tab bar or navigation controller (they have specific restrictions for orientation change)?
EDIT:
for a tab bar controller, it is required that all controllers managed by it support a given orientation for autorotation to work.
Upvotes: 1
Reputation: 2937
This only works if you subclass your own UIViewController
. Apple's default implementation returns NO
for all these values except for UIInterfaceOrientationPortrait
(obviously). So create a new file, make it a subclass of UIViewController
, go to its .m
file and paste this in:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES; //that's enough
}
Then use this subclass as your view controller and the rotation will work.
Upvotes: 0