Панель навигации моего навигационного контроллера не изменит высоту при повороте в альбомную ориентацию.
видите, он остается на уровне 44 пикселей вместо 34, я думаю.
Что мне делать, чтобы исправить это?
Панель навигации моего навигационного контроллера не изменит высоту при повороте в альбомную ориентацию.
видите, он остается на уровне 44 пикселей вместо 34, я думаю.
Что мне делать, чтобы исправить это?
Вы должны добавить свой навигационный контроллер непосредственно в качестве подпредставления к вашему окну, иначе это не будет работать автоматически. (Нет необходимости изменять рамку панели навигации вручную.)
Метод -[application:didFinishLaunchingWithOptions:]
вашего AppDelegate
должен содержать что-то вроде
[window addSubview:self.yourNavController.view];
Чтобы получить пример, где это работает автоматически, вы также можете создать новое приложение на основе навигации в XCode и добавить реализацию для метода shouldAutorotateToInterfaceOrientation:
RootViewController, который всегда возвращает YES.
Во время метода autoRotation вашего класса измените рамку вашего navBar следующим образом:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if((self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight))
{
self.navigationController.navigationBar.frame = CGRectMake(0,0,480,32);
}
else if((self.interfaceOrientation == UIInterfaceOrientationPortrait) || (self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))
{
self.navigationController.navigationBar.frame = CGRectMake(0,0,320,44);
}
else
{
assert(false);
}
}