Макет iPad отличается только при запуске - PullRequest
0 голосов
/ 15 декабря 2010

Хорошо. У меня есть интересная проблема с приложением для iPad, которое я разрабатываю.

Когда приложение запускается в портретном режиме, макет работает, как и ожидалось.Я поворачиваю iPad, и вращение работает нормально.

Когда приложение запускается в ландшафтном режиме, появляется дополнительное пустое пространство, и макет не работает должным образом.Но когда я поворачиваю приложение в портрет, оно вращается просто отлично.Он также хорошо выглядит, когда я поворачиваю его обратно в альбомную ориентацию.

Что может быть причиной этой проблемы?Рассматриваемый контроллер представления является контроллером представления, который содержит UINavigationController (я должен был добавить в заголовок).Интересно, что-то с UINavigationController?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2010

Хорошо, так что в моем приложении было странным то, что компоновка стала бы правильной, когда контроллер вкладок переключал вкладки обратно на представление, которое было в стиле фанк.Итак, я добавил хак, чтобы переключаться между вкладками перед makeKeyAndVisible главного окна.

Я попробовал ваше предложение WrightsCS.Реальная причина, по которой это не сработало, заключается в том, что я загружаю представление UINavigationController во вложенном представлении страницы, поэтому у меня не было контроля над макетом, который испортился.Верхняя панель навигационного контроллера загружалась немного ниже, чем должна была быть.

0 голосов
/ 15 декабря 2010

Ваш вид ожидает портретный режим при запуске. В вашем контроллере представления вы должны сообщить ему, чтобы искать ориентацию, и загрузить соответствующий вид.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    if(((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || 
        (interfaceOrientation == UIInterfaceOrientationLandscapeRight))){

        self.view = landscape;

    }else if(((interfaceOrientation == UIInterfaceOrientationPortrait) || 
              (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))){

        self.view = portrait;
    }

    return YES;
}
...