Only support for landscape Interface orientation

2019-03-02 17:37发布

问题:

I have application that uses landscape right orientation. In view controllers I use:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  // Return YES for supported orientations
  return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

But, If user locks iphone or ipad to portrait orientation, screen is displayed as portrait, not landscape. Also, in info.plist file I defined only Right Landscape orientation as supported one.

回答1:

Try setting the UIInterfaceOrientation key in your Info.plist to UIInterfaceOrientationLandscapeRight. That should force landscape right orientation on launch.



回答2:

The problem was in function viewDidLoad where another view controller is pushed into navigation stack immediately. If pushing action is delayed then landscape rotation will start and proceed, and also desired view controller will be pushed properly with landscape orientation.