问题
I have a strange problem in an iPhone app I'm developing. I want my app to support ONLY portrait mode, but for some reason I can't do it (device & simulator).
To support only portrait mode I did as follow:
- In the TARGET summary section on Xcode, I chose only portrait.
- All my ViewControllers implements
shouldAutorotateToInterfaceOrientation
But as I said it won't work, and the strange result is that the app support ALL the orientations (portrait, upside down, landscape left, landscape right).
Any ideas?
this how I implement shouldAutorotateToInterfaceOrientation
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
NSLog(@"Checking orientation %d", interfaceOrientation);
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
I notice just now that when I rotate the phone I get this message:
"Two-stage rotation animation is deprecated. This application should use the smoother single-stage animation."
What does it means?
回答1:
It is possible to have multiple ViewControllers on the screen. The UITabBarController
is itself a UIViewController
, and it only passes shouldAutorotateToInterfaceOrientation:
requests to the viewControllers within if it chooses. The default implementation does this, but if you subclass it, the code XCode generates (as of iOS 5.1) does not.
回答2:
On the Target Summary choose portrait only.
回答3:
Go to info.plist file. Right Click open it as source code. And look for this line. For me in iPad its like this:
<key>UISupportedInterfaceOrientations~ipad</key>
Delete all other orientation and keep the only one which you need..Like this :
<array>
<string> UIInterfaceOrientationPortrait </string>
</array>
回答4:
check your plist and make sure the key there is set correctly.
来源:https://stackoverflow.com/questions/10032490/how-to-support-only-portrait-mode-on-an-iphone-app