Принятый ответ (с использованием shouldAutorotateToInterfaceOrientation
) не работает для меня. У него либо есть артефакты вращения (в симуляторах iPad для 4.2 и 5.0), либо он отображается только при запуске и никогда больше не при последующих вращениях (симулятор 4.3). Вместо этого я создал небольшую вспомогательную функцию:
- (void)showPopoverInPortrait {
if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait) {
[self.masterPopoverController presentPopoverFromBarButtonItem:self.navigationItem.leftBarButtonItem
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
}
}
и вызовите это в - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
и - (void)viewDidLoad
, чтобы также обработать при запуске.