我在 appDelegate 类中编写了这部分代码来控制我的应用程序的方向。
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
NSUInteger orientations = UIInterfaceOrientationMaskAll;
if (self.window.rootViewController) {
UIViewController* presented = [[(UINavigationController *)self.window.rootViewController viewControllers] lastObject];
orientations = [presented supportedInterfaceOrientations];
}
return orientations;
}
我使用此代码将我的方向锁定为纵向。
- (BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
这适用于由 NavigationViewController 推送的所有 ViewController,但不适用于模态呈现的 ViewController(我的模态视图似乎不会覆盖此代码)。
当 ViewController 由模态呈现时,代码示例不起作用。我的 ViewController(模态视图)仍然是纵向的。
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}