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);
Asked
Active
Viewed 121 times
1 Answers
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:
-
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