У меня проблема с ориентацией iphone sdk ...
Я помещаю «удерживающий» контроллер вида в навигационный контроллер. Холдинг ViewViewController использует viewDidLoad, чтобы показать панель навигации navigationController, добавить к нему кнопку-перевертыш и селектор для кнопки-перекидного. Затем он добавляет подпредставление, используя UIViewAnimationTransitionNone, показывая UIView, содержащий TableView. При нажатии на кнопку переворачивания контроллер удерживающего вида удаляет загруженное подпредставление и заменяет его другим подпредставлением, также содержащим представление с табличным представлением, и преобразует с помощью переворачиваемой анимации. Проблема возникает при переключении и изменении ориентации. хотя как переворачивание, так и вращение вначале работают, если я переворачиваюсь в ландшафтном режиме, перевернутое представление как бы «обрезается» до ширины портрета, хотя на самом деле отображается в альбомной ориентации, вращение не исправляет это, вы должны перевернуть, повернуть вернуться к портрету, затем снова переверните. Похоже, что холдинговый вид не регистрирует изменение ориентации, но я знаю, что это так, как я реализовал
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];
на всех 3 контроллерах вида, и я вижу, что для каждого из них вызывается функция directionChanged.
Все три viewcontrollers устанавливают автоматическое изменение размера в viewDidLoad
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
и я также реализовал
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return YES;
}
У кого-нибудь есть идеи, что происходит, или, что более важно, что я могу сделать, чтобы это исправить?
большое спасибо