xcode tabbar应用程序 - 设备轮换问题

时间:2012-05-15 17:13:22

标签: xcode orientation device tabbar

我正在编写一个设置为自动旋转的简单标签栏应用。我需要根据设备方向在屏幕上重新绘制一些对象。为此已打开通知并尝试获取屏幕的当前宽度。一切正常,但在横向模式下我得到纵向宽度,反之亦然!@?

AppDelegate didFinishLaunchingWithOptions:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

界面viewWillAppear:

NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
       selector:@selector(orientationChanged:)
           name:UIDeviceOrientationDidChangeNotification
         object:nil];

界面orientationChanged:

UIInterfaceOrientation orientation = [UIDevice currentDevice].orientation;

if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown)
{
    NSLog(@"Portrait Width: %f", self.view.frame.size.width);
}
else if (orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight)
{
    NSLog(@"Landscape Width: %f", self.view.frame.size.width);
}

在iPad上我得到: 纵向宽度:1024 景观宽度:768

为什么我没有 横向宽度:1024和纵向宽度:768

这仅在应用程序启动时发生。一旦我点击另一个tabitem,报告就是正确的。

我应该添加我用stroyboard写的这个应用程序之前没有问题,但是由于IOS限制(部署目标)我重写了它包括4.0。这就是问题开始的地方。

上下搜索解决方案,但无法弄明白。 任何想法在这里发生了什么?

0 个答案:

没有答案