Этот вопрос состоит из двух частей:
Какой метод перехода от одного представления к другому в приложении iPad обеспечивает наилучшее взаимодействие с пользователем?
Какой метод перехода от одного представления к другому проще всего реализовать и лучше всего справляется с управлением памятью?
Я не собираюсь пытаться ответить на первую часть этого вопроса, кроме как для того, чтобы указать вам на «Руководство по интерфейсу Apple iPad», в котором говорится (среди прочего):
Уменьшение полноэкранных переходов
Тесно связывайте визуальные переходы с изменяющимся содержимым. Вместо того, чтобы менять местами новый экран при изменении какой-либо встроенной информации, попробуйте обновить только те области пользовательского интерфейса, которые в ней нуждаются. Как правило, предпочитают переходы отдельных видов и объектов, а не экрана. В большинстве случаев переворачивать весь экран не рекомендуется.
Когда вы выполняете меньше полноэкранных переходов, ваше приложение имеет большую визуальную стабильность, что помогает людям отслеживать, где они находятся в своей задаче. Вы можете использовать элементы пользовательского интерфейса, такие как разделенное представление и всплывающее окно, чтобы уменьшить потребность в полноэкранных переходах.
http://developer.apple.com/library/ios/prerelease/#documentation/General/Conceptual/iPadHIG/DesignGuidelines/DesignGuidelines.html
Однако в вашем случае я бы подумал, что переход в полноэкранный режим вполне уместен (но тогда я не эксперт по пользовательскому опыту).
В ответ на вторую часть да, модальное отображение нового контроллера представления кажется хорошим подходом.
По умолчанию как объекты, используемые представлением меню, так и объекты, используемые модальным представлением, будут храниться в памяти - но самое замечательное в использовании подклассов UIViewController заключается в том, что они имеют встроенную систему управления памятью по умолчанию. Если ваше приложение получает предупреждение памяти, в то время как модальное представление представлено в полноэкранном режиме, представления контроллера представления меню будут удалены, и будет вызван его метод 'viewDidUnload'. Таким образом, в вашей реализации этого метода вы должны освободить любые ненужные объекты и затем воссоздать их по мере необходимости в методе viewDidLoad контроллера представления меню (который будет вызван снова, прежде чем отобразится представление меню).
Это объясняется более подробно в справочнике по классу UIViewController:
Когда появляется предупреждение о нехватке памяти, класс UIViewController очищает свои представления, если он знает, что может перезагрузить или воссоздать их позже. Если это происходит, он также вызывает метод viewDidUnload, чтобы дать вашему коду возможность отказаться от владения любыми объектами, связанными с вашей иерархией представления, включая объекты, загруженные с помощью файла nib, объекты, созданные в вашем методе viewDidLoad, и объекты, созданные лениво в время выполнения и добавлено в иерархию представлений. Как правило, если ваш контроллер представления содержит выходы (свойства или необработанные переменные, содержащие ключевое слово IBOutlet), вы должны использовать метод viewDidUnload, чтобы отказаться от владения этими выходами или любыми другими данными, относящимися к представлению, которые вам больше не нужны.
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html