3

我在 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;
}
4

0 回答 0