Я разрабатываю интерфейс для приложения iOS, в котором есть как иерархические режимы навигации, так и произвольные режимы переключения на просмотр. Макет любого заданного представления в одном режиме отличается от макета соответствующего представления в другом режиме.Как имитировать метод UINavigationController pushToViewController
Я хочу, чтобы пользователь мог переключаться между этими режимами. Предположим, что изолированное подвью имеет соответствующий подробный вид, который находится в иерархии UINavigationController на 2 уровня. Пользователь должен иметь возможность напрямую переключиться на это подробное представление навигации. Оттуда он должен либо перемещаться вверх, и вниз по иерархии UINavigationController, либо переключиться обратно в изолированное подчинение, из которого он пришел.
UINavigationController имеет метод popToViewController:animated:
, который позволит вам пропустить уровни, как вы ориентируетесь назад вверх иерархия, но она не имеет соответствующего pushToViewController:animated:
, который позволит вам перейти непосредственно к более низкому уровню в иерархии. Это имеет смысл - навигационный контроллер должен вытолкнуть промежуточный вид/сек в стек, прежде чем отобразит целевое представление. Но регулярные push-методы показывают промежуточный вид/с, который, как я полагаю, вызовет визуальную вспышку, а также требовательную производительность.
Если я моделировать pushToViewController
по телефону pushViewController
два раза подряд, с animated:NO
для промежуточной точки зрения и с точки зрения промежуточного набора временно быть прозрачной, я буду получать разумную производительность? Или, когда запрашивается режим навигации, я должен поместить стек навигационного контроллера за в изолированные виды, выполнить несколько вызовов до pushViewController,
, а затем переместить навигационный контроллер на передний план? Или я должен отказаться от использования UINavigationController вообще и выполнить всю навигацию в стиле таблиц вручную с помощью UIView's add/remove/insert/exchangeSubview
?
Спасибо, да, это именно то, что я хочу! Поскольку он был указан в разделе «Доступ к элементам в стеке навигации», я не понимал, что он также может использоваться для отображения отображаемого вида просмотра, несмотря на ключ, предоставленный параметром «анимированный:». Извините, что занял ваше время. – Wienke
Без проблем :) Рад помочь – Aaron