1

当我在 iOS 6 中将我的应用程序从纵向旋转到横向时,我想创建一个单独的视图。我能找到的唯一重要文档是在 Apple Developer 网站上,但它不是很详尽。

我需要彻底了解如何设置(和连接)纵向视图控制器和横向视图控制器以进行旋转。

我设法使用一些已弃用的 iOS 5 方法让它工作,但它不是万无一失或故障安全的,目前超过 80% 的 iOS 用户正在使用 iOS 6。

谢谢

4

1 回答 1

4

根据 pmk 建议,我将扩展并建议您执行以下操作:

在您的 xib 文件中,创建两个不同的视图,除了 UIViewController 的视图。其中一个应该是纵向模式,另一个应该是横向模式。

在接口文件中声明两个 IBOutlet 视图,并将它们连接到我上面解释的视图:

IBOutlet UIView *portraitView;

IBOutlet UIView *landscapeView;

现在,在您的实现文件中,您需要“了解”方向的变化,并根据方向设置正确的。在您的 viewDidLoad 中,您可以放置​​:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:UIDeviceOrientationDidChangeNotification object:nil];

然后,最后,你实现了这样的东西:

-(void)didRotate:(NSNotification *)notification
{   
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];

    if (orientation == UIDeviceOrientationLandscape)
    {
         portraitView.hidden = YES;
         landscapeView.hidden = NO;
    }
    else if (orientation == UIDeviceOrientationPortrait)
    {
         portraitView.hidden = NO;
         landscapeView.hidden = YES;
    }
}
于 2013-04-28T10:23:26.803 回答