Я вращаю вид, похожий на приложение iTunes. На портрете вид из таблицы, а в пейзаже - просмотрщик фотографий.
Когда я возвращаюсь из пейзажа в портрет, я пытаюсь восстановить панель навигации, но вместо этого получаю искаженное представление таблицы, но не панель навигации.
Вот что я делаю:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration {
BOOL restoreNav = NO;
if ((toInterfaceOrientation == UIInterfaceOrientationPortrait) ||
(toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)) {
[self inPortrait];
restoreNav = YES;
} else {
[self inLandscape];
}
if (self.landscape)
{
if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
{
self.view = self.portrait;
}
else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft)
{
self.view = self.landscape;
}
else if (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
self.view = self.portrait;
}
else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
self.view = self.landscape;
}
[[self.navigationController view] setFrame: [[UIScreen mainScreen] bounds]];
} else {
self.navigationController.navigationBarHidden = NO;
}
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];