Landscape Mode ONLY for iPhone or iPad

4 Solutions Collect From Internet About “Landscape Mode ONLY for iPhone or iPad”

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 to
    UIInterfaceOrientationLandscapeLeft
    or
    UIInterfaceOrientationLandscapeRight.

  • 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)

Supported Interface Orientations

You should also set the app’s orientation in your app’s Info.plist file (Info.plist file) by appending the Supported interface orientations key with the values Landscape (left home button) and Landscape (right home button). row's

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. landscape

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));.