AppDelegate中的方向检测

时间:2012-10-07 18:04:52

标签: objective-c ios orientation ios6 uistoryboard

这是在我的AppDelegate中,并在方向更改时运行。当应用程序加载它时,它总是以纵向模式加载。如果我在设备处于横向模式时加载应用程序,则仍然会像设备处于纵向模式一样执行。这是我遇到的第一个问题。第二个是在我将设备从纵向旋转到横向时加载后,我得到了一个断线,如下所示:

-(void)setOrientationView
{

    UIDevice *currentDevice = [UIDevice currentDevice];
    [currentDevice endGeneratingDeviceOrientationNotifications];
    UIDeviceOrientation theOr = currentDevice.orientation;

    if ( UIDeviceOrientationIsLandscape(theOr) && !isLandVisible )
    {
        NSLog(@"setLand");
        isLandVisible = YES;
        isPortVisible = NO;

        [self.window.rootViewController pushViewController:portCont animated:YES];   // <Thread 1: breakpoint 2.1

    }

    if( UIDeviceOrientationIsPortrait(theOr) && !isPortVisible )
    {
        NSLog(@"setPort");
        isPortVisible = YES;
        isLandVisible = NO;

        [self.window.rootViewController pushViewController:portCont animated:YES];

    }
    [currentDevice beginGeneratingDeviceOrientationNotifications];

}

我正在尝试使用故事板应用程序来支持加载时的方向,并且在查看后不会忽略视图(必须防止重新加载UIWebViews)。所以有两个问题超出了我的范围。谢谢你。

1 个答案:

答案 0 :(得分:0)

“iOS应用程序编程指南”的Advanced App Tricks部分有一些关于Launching in Landscape Mode的指南,可能是您的答案在几行内(如果可能的话)。特别要注意UIInterfaceOrientation文件中的Info.plist