Предпосылка удивительно проста: я хочу отобразить модальное представление в приложении для iPad, которое использует UISplitViewController.
Иерархия представлений проста:
/- TableViewController1
/- root:TabBarController -- TableViewController2
SplitViewController -
\- detail:CustomViewController
Когда янажмите на одну из ячеек таблицы в TableViewController1, я открою модальное представление:
- (void)tableView:(UITableView *)tv didSelectRowAtIndexPath:(NSIndexPath *)ip {
UIViewController *vc = [[MyModalClass alloc] init];
UINavigationController *nc = [[UINavigationController alloc]
initWithRootViewController:vc];
nc.modalPresentationStyle = UIModalPresentationFormSheet;
nc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:nc animated:true];
[nc release];
[vc release];
}
Это работает очень хорошо: представление появляется.Проблемы начинаются, когда я пытаюсь отклонить его в любой ориентации, кроме альбомной.
В ModalViewController следующий метод запускается UITabBarButton на панели навигации:
- (void) closeButtonInNavBarWasClicked:(id)sender {
[self dismissModalViewControllerAnimated:true];
}
И ЭТОгде начинаются проблемы.
Когда вызывается этот код, модальное представление исчезает, НО: TabBarController (корневое представление разделенного представления) внезапно поворачивается и изменяется.Контент внезапно переходит на бок и частично покрывает вид деталей.Представление сведений не изменяется, чтобы быть меньше, оно лишь частично покрывается корневым представлением.
Единственная ситуация, когда эта проблема не возникает, - это когда я нажимаю на ячейку TableViewController1, когда приложение находится в портретной ориентации.Режим.Несмотря на то, что корневое представление находится в поповере (что может быть достаточным источником ошибок), все работает отлично.
Некоторые вещи, которые я уже пробовал, безуспешно:
- Дампна панели вкладок просто отобразите TableViewController1 в качестве корневого контроллера разделенного представления
- Создайте протокол делегирования, чтобы родительский TableViewController1 отклонял модальное представление, а не само представление MyModalClass.
- Представление / отклонениемодальное представление TableViewController1.splitViewController на самом деле усугубляет ситуацию: представление даже не появляется.
- Пожертвование нескольких коз также не помогло.
Я был бы очень признателен за любой вклад вэта проблема.