С точки зрения использования и обслуживания кода, использования памяти и т. Д., Нет никаких сомнений в том, что UINavigationController
подходит лучше всего.Он был оптимизирован именно для того, что вы делаете.А поскольку вы нажимаете и извлекаете из него UIViewController
с (а не только UIView
с), представления, которые в данный момент не отображаются на экране, могут автоматически освобождаться для освобождения памяти ОС.
Можно ли использоватьвид навигации без панели сверху?Я думаю, может быть, вы должны RTFM.В частности, -setNavigationBarHidden:animated:
Тем не менее, UINavigationController
не особенно гибок в выполнении действий, для которых он не предназначен.В частности, он рассуждает о переходах, которые он использует для анимации между контроллерами представления в своем стеке.
Возможно, вам повезет, если вы нажмете и вытолкнете анимацию без (путем передачи NO
параметру animated:
этих методов) и настройте делегат для обработки -navigationController:willShowViewController:animated:
.Теоретически вы можете добавить CATransition
к анимации корневого представления.Но что-то намного более сложное, чем это (представление, которое отслеживает ваш палец при скольжении на экран и т. Д.), И вам, вероятно, придется написать свой собственный контроллер и управлять своими собственными представлениями.
Но вы должнывсе еще читайте Apple View Controller Руководство по программированию для iOS и спецификации NSNavigationManager
, пока вы не впустите их в полноту.Было бы трудно найти лучший шаблон для создания вашего дизайна.