iPad - xib игнорирует ориентацию при просмотре - PullRequest
1 голос
/ 10 ноября 2010

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 голосов
/ 26 января 2011

Я использую следующее

        
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];
        }

Я ненавижу делать это, потому что это кажется правильным, но это работает для меня.Вызывается сразу после создания представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...