How can I disable landscape orientation? How can I disable landscape orientation? ios ios

How can I disable landscape orientation?


To disable orientations for a particular View Controller, you should now override supportedInterfaceOrientations and preferredInterfaceOrientationForPresentation.

- (NSUInteger) supportedInterfaceOrientations {    // Return a bitmask of supported orientations. If you need more,    // use bitwise or (see the commented return).    return UIInterfaceOrientationMaskPortrait;    // return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;}- (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation {    // Return the orientation you'd prefer - this is what it launches to. The    // user can still rotate. You don't have to implement this method, in which    // case it launches in the current orientation    return UIInterfaceOrientationPortrait;}

If you're targeting something older than iOS 6, you want the shouldAutorotateToInterfaceOrientation: method. By changing when it returns yes, you'll determine if it will rotate to said orientation. This will only allow the normal portrait orientation.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {    // Return YES for supported orientations    return (interfaceOrientation == UIInterfaceOrientationPortrait);     // Use this to allow upside down as well    //return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);}

Note that shouldAutorotateToInterfaceOrientation: has been deprecated in iOS 6.0.


Xcode 5 and above

  • Click your project in the Project Navigator in the left sidebar to open the project settings
  • Go to the General tab.
  • Uncheck the options you don't want in the Deployment Info section, under Device Orientation

screenshot showing where to click


Xcode 4 and below

For those who missed it: you can use the project settings screen to fix orientations throughout the app (no need to override methods in every controller):

enter image description here

It's as simple as toggling the supported interface orientations. You can find by clicking on your Project in the left panel > the app target > Summary tab.