iPad - xib忽略视图加载的方向

时间:2010-11-10 20:29:05

标签: objective-c xcode ipad uiview interface-builder

iPad问题:

我们有从.xibs初始化的视图,每个.xib都包含横向和纵向布局。

我们加载的第一个视图尊重设备的方向,但任何后续视图似乎都混淆了它们应该使用的方向。或者,相反,它们似乎完全忽略了方向,并且与.xib文件保存的任何方向一致。 (即我们在横向中保存了.xib文件,即使设备处于纵向位置,它也会使用横向布局从.xib加载视图。)

这就是我们调用这些观点的方式:

Settings *settingsTEMP = [[Settings alloc] init];
self.settings = settingsTEMP;
[self.view insertSubview:settings.view atIndex:0];
[settingsTEMP release];

第一个调用(尊重设备方向的调用)位于viewDidLoad中。第二个,使用不同的视图(不尊重设备方向的视图)是在按下按钮后调用的方法,但使用相同的语法。

如果我们将两者放入viewDidLoad,他们都尊重方向。

我们已经尝试搜索任何有类似问题的人,但迄今为止都没有成功。提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

我使用以下

        
UIInterfaceOrientation toInterfaceOrientation = self.interfaceOrientation;
if ((toInterfaceOrientation == UIDeviceOrientationLandscapeLeft) || 
            (toInterfaceOrientation == UIDeviceOrientationLandscapeRight)) 
    {
        NSLog(@"vSettings UIDeviceOrientationLandscape");
        CGRect contentRect = CGRectMake(0,0,1024,768);
        vSettings.bounds = contentRect;
        CGRect myFrame = vSettings.frame;
        myFrame.origin.x = 0.0;
        myFrame.origin.y = 0.0;
        vSettings.frame = myFrame;
        UIImage *image;
            image = [UIImage imageNamed: @"Default-Landscape.png"];
        [backGroundSettings setImage:image];
        }

我讨厌必须这样做,因为它似乎是一个正确的软糖,但它适用于我。在我创建视图后调用。