iPhone app in landscape mode, 2008 systems

Viewed 67516

Please note that this question is from 2008 and now is of only historic interest.


What's the best way to create an iPhone application that runs in landscape mode from the start, regardless of the position of the device?

Both programmatically and using the Interface Builder.

8 Answers

From the Apple Dev Site:

To start your application in landscape mode so that the status bar is in the appropriate position immediately, edit your Info.plist file to add the UIInterfaceOrientation key with the appropriate value (UIInterfaceOrientationLandscapeRight or UIInterfaceOrientationLandscapeLeft), as shown in Listing 2.

Listing 2: Starting your application in landscape mode

<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>

sasb's and michaelpryor's answer appears to be correct, but if it's not working for you, try this alternative:

- (void)applicationDidFinishLaunchingUIApplication *)application {
    application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;
}

Or this one:

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

Or this one:

[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];

You may also have to call window makeKeyAndVisible; first.

A few links: Developing in landscape mode, iPhone SDK: How to force Landscape mode only?

@Robert: please refer to The iPhone SDK, NDA, and Stack Overflow.

The latest iPhone OS Programming Guide has a full section on this, with sample code. I am sure this is a recent addition, so maybe you missed it. It explains all the conditions you have to comply with; basically...

  • set the Info.plist properties (this changes the position of the status bar, but not the view)
  • rotate your view manually around its center, on either your UIViewController viewDidLoad: method or your applicationDidFinishLaunching: method or implement auto rotation ("Autoresizing behaviors", page 124)

Look for "Launching in Landscape Mode", page 102.

Related