У меня есть popover, содержащий UINavigationController. Я могу отобразить popover fine, и он содержит navController просто отлично. NavController содержит tableView, и когда я выбираю элемент, он создает новый подробный вид:
DeviceDetailViewController *detailViewController =
[[[DeviceDetailViewController alloc] initWithNibName:@"DeviceDetailViewController" bundle:nil] autorelease];
Затем я нажимаю на новый контроллер вида:
[self.navigationController pushViewController:detailViewController animated:YES];
Это когда возникает проблема: после нажатия нового представления, popover изменяет размер до максимальной высоты, доступной на iPad.
Я попытался установить высоту всех представлений в xib на фиксированную высоту, а не на гибкость. Я попытался явно установить высоту popover. Я также попытался использовать разные контроллеры представлений в качестве дочернего представления. Проблема остается: popover хочет автоматически изменять размер до максимальной высоты всякий раз, когда новое представление переносится на контроллер навигации.
Здесь question, в котором обсуждается попытка преднамеренно контролировать размер popover при нажатии новых просмотров:
Я думал, что это может быть метод грубой силы для управления размером. Как ни странно, однако, это на самом деле вызывает некоторые быстрые графические причуды (как если бы представление было недавно анимированным), а затем продолжая изменять размер, как описано выше.
Другими словами, что-то буквально заставляет popover достигать максимальной высоты, и, похоже, это происходит после вызова всех методов-делегатов.
Это навигационный контроллер? Кто-нибудь видел такие вещи?