0

Is there a possibility that I can programatically say that only 1 UIView can be in landscape mode? My Whole app has to be in portrait mode (not moving at all) but 1 UIView should be able to go in Landscape mode (To show pictures even better);

Glenn Bettens
  • 65
  • 1
  • 8

1 Answers1

1

You rotate VC like this:

- (BOOL)shouldAutorotate {
     return self.topViewController.shouldAutorotate;    
}

- (NSUInteger)supportedInterfaceOrientations {
      return self.topViewController.supportedInterfaceOrientations;    
}

Restrict VC so it won't rotate:

- (BOOL)shouldAutorotate { return NO; }

- (NSUInteger)supportedInterfaceOrientations {
    return (UIInterfaceOrientationMaskPortrait); 
}

You could change condition as per your need and this answer is referred from this link so you could go there for more understanding.

Also do keep that iOS 6/7 have different method for checking.If anything else then let me know.

UPDATED:- iOS 7 callBack method for checking mode

– willRotateToInterfaceOrientation:duration:
– willAnimateRotationToInterfaceOrientation:duration:
– didRotateFromInterfaceOrientation:
Community
  • 1
  • 1
nikhil84
  • 3,235
  • 4
  • 22
  • 43
  • And is it possible to do this when you don't 'allow' other modes in the Info.plist? Ex: Now there is only Portrait Mode (active) – Glenn Bettens Sep 16 '14 at 09:43
  • I guess u could do it programmatically still I have not done this but u could tick all mode's and control them in those callback methods. Also updated my post with callBack for iOS 7 as above are for iOS 6 and below. Don't forget to check for iOS8 if ur targeting it too. – nikhil84 Sep 16 '14 at 10:36