0

我有一个简单的基于 UITabBarController 的通用应用程序,我正在 iPad 上添加自动旋转支持,目前唯一让我头疼的是支持 PassCode 视图控制器(基于 XIB)的自动旋转。

要求:
1- 密码 VC 的视图将在应用程序启动时显示自动旋转支持(完成)。
2- 当应用程序从后台返回 (didBecomeActive:) 时,Passcode VC 的视图将提供自动旋转支持,并位于其他所有内容之上。

我为要求 2 所做的尝试:
1- 将密码的视图作为子视图添加到应用程序的窗口 (addsubview:)。效果很好,除了自动旋转不起作用(我明白为什么)。
2-将密码的视图作为子视图添加到标签栏控制器的视图 (addsubview:)。自动旋转效果很好,但是如果以模态方式呈现另一个视图控制器,则密码的视图肯定会在其下方(也可以理解)。

我可以看到其他应用程序实现了我想要的完全相同的东西,例如 DropBox 和 GoodReader。

非常感谢任何输入!
提前致谢。

4

1 回答 1

0

我不能告诉你这是最好的方法,但我们设法使用单独的窗口获得了类似的功能。我们开始使用这个库:Block Alerts,这是一个很好的起点。

这让我们有了新UIWindow的东西,它会出现在一切之上,但不能很好地自动旋转。但是,通过一些实验,我们发现以下内容将为我们提供所需的自动旋转:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (UIInterfaceOrientationIsPortrait(interfaceOrientation))
    {
        CGPoint newCenter = CGPointMake(kDefaultPortraitWidth / 2, (kDefaultPortraitHeight * 0.3f));
        containerView.center = newCenter;
    }
    else
    {
        CGPoint newCenter = CGPointMake(kDefaultPortraitHeight / 2, (kDefaultPortraitWidth * 0.2f));
        containerView.center = newCenter;
    }

    return YES;
}

容器视图只包含我们所有的“东西”,以便更容易像这样移动。

注意:常量并不重要,请使用使您的视图正常工作的任何内容。

于 2012-08-19T02:50:20.790 回答