Landscape Mode ONLY for iPhone or iPad
I want to create an application that doesn't use Portrait mode.
I am not sure if I need to edit the plist or have code in addition to the plist
Code found here
Launching in Landscape Mode
Applications in iPhone OS normally launch in portrait mode to match the orientation of the Home screen. If you have an application that runs in both portrait and landscape modes, your application should always launch in portrait mode initially and then let its view controllers rotate the interface as needed based on the device’s orientation. If your application runs in landscape mode only, however, you must perform the following steps to make it launch in a landscape orientation initially.
In your application’s Info.plist file, add the
UIInterfaceOrientation
key and set its value to the
landscape mode. For landscape
orientations, you can set the value
of this key toUIInterfaceOrientationLandscapeLeft
orUIInterfaceOrientationLandscapeRight.
Lay out your views in landscape mode and make sure that their autoresizing options are set correctly.
Override your view controller’s
shouldAutorotateToInterfaceOrientation:
method and return YES only for the
desired landscape orientation and NO
for portrait orientations.
To make your app landscape mode only, you should use "Supported Interface Orientations".
(Targets -> YourApp -> Supported Interface Orientations -> Landscape Left & Right
)
You should also set the app's orientation in your app's Info.plist
file () by appending the Supported interface orientations
key with the values Landscape (left home button)
and Landscape (right home button)
.
You may use willRotateToInterfaceOrientation
and/or didRotateFromInterfaceOrientation
to handle orientation changes.
shouldAutorotateToInterfaceOrientation
is deprecated from iOS 6 and out.
Returning UIDeviceOrientationLandscapeLeft/Right
for shouldAutorotateToInterfaceOrientation
should make your app "landscape":
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
Also may also change your app's Info.plist
and View Orientation
(as explained above).
Additionally, I recommend changing your view's orientation to Landscape
in the Attributes Inspector.
You could also just shorten it all to
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
edit the plist to only support landscape, then make sure that in every uiviewcontroller/uitabbar etc., in the shouldAutoRotateToInterfaceOrientation
, the return
says return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
.