通用应用程序支持肖像和肖像颠倒,但在iPhone上不会发生旋转 - 更新

时间:2014-01-27 14:07:11

标签: ios

我的应用是universal application,支持纵向和纵向倒置。

我的应用使用的UITabBarController UINavigationControllers代表3 UITabBarItems

为了支持这些,我做了以下事情:

1)相应地为两个设备添加了"supported Interface Orientations"密钥 2)在app delegate和所有其他视图控制器中添加以下代码

- (BOOL)shouldAutorotate {
    return YES;
}

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

在iPad上,一切都如预期的那样,但在iPhone上,只有我的一些观点(并非所有观点)都没有对方向的变化作出反应。!!为什么会发生这种情况?

3 个答案:

答案 0 :(得分:0)

您应检查所有视图控制器是否已定义轮换,然后您应将其添加到它们:

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

答案 1 :(得分:0)

如果您正在使用导航控制器,则应创建子类.i.e。 “MyNavController”及其实现中的旋转指令:

- (BOOL)shouldAutorotate {
return YES;
}

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

然后使用它:

MyNavController *navo = [[MyNavController alloc] initWithRootViewController:myRootController];

答案 2 :(得分:-3)

据我所知,在纵向模式下颠倒iPhone是不允许的,因为当用户接到电话时,应用程序处于暂停状态并且他将手机颠倒了。这就是苹果不想要的原因。