Как анимировать представление detailViewController без UINavigationController?

В приложении для iPad у меня есть tableView как подпредставление viewController верхнего уровня — назовем его topVC. TableView управляется выделенным viewController, tblVC, который является свойством topVC. Мне нужно, чтобы tableView поддерживал навигацию в стиле iPhone.

Настройка свойства UINavigationController в файле topVC.xib в IB с tblVC, подключенным в качестве rootViewController, не сработала, поэтому я настроил UINavigationController программно в topVC viewWillAppear:, инициализировав его с помощью tblVC в качестве rootViewController и установив его представление как подвид topVC. Это работало по желанию, но при повороте в альбомную ориентацию панель навигации NavigationController всплывала в верхней части представления thetopVC.

Можно ли вручную выполнить навигацию в DetailView с базовой анимацией слайдов в стиле iPhone без UINavigationController, используя UINavigationBar и UINavigationItem? Я думал о том, чтобы вывести detailView из рамки tableView и вставить его вручную, но это только заставило его появиться поверх другого подвида и скользнуть в tableView. Как это сделать?


person seeker12    schedule 13.11.2010    source источник


Ответы (1)


arrow_upward
0
arrow_downward

Вы можете рассмотреть возможность использования всплывающего контроллера представления и разместить внутри него стандартный UINavigationController с вашим UITableViewController внутри него.

В противном случае вам придется свернуть свой собственный навигационный контроллер. Я обнаружил, что это настоящая PITA, чтобы изменить/влиять на некоторые врожденные поведения, которые вы видите, такие как изменение положения при вращении.

person TomSwift    schedule 13.11.2010
comment
Использование UINavigationBar, расположенного над tableView (вместо настройки с помощью UINavigationController) в подвиде topVC решает проблему изменения ориентации, т. Поповер - хорошее альтернативное предложение, но это не то, что мне нужно. Спасибо. - person seeker12; 13.11.2010