Что означает вставить контроллер в другой контроллер?

У меня есть FirstViewController, который является моим корневым навигационным контроллером. У меня есть кнопка создания сообщения, и я хочу отображать TTMessage Composer модально при нажатии. Это прекрасно работает.

Проблема в том, что нет панели навигации для отмены композитора, поэтому я должен добавить ее.

Вот как это выглядит без навигационной панели, если просто представить компоновщик сообщений (TTMessageController) в модальном режиме.

введите здесь описание изображения

Я нашел это в группе Google three20:

Перед представлением контроллера сообщений необходимо создать контроллер навигации, вставить в него контроллер сообщений, а затем модально представить контроллер навигации.

Это похоже на решение моей проблемы, но я этого не понимаю. Может ли кто-нибудь объяснить это с небольшим количеством кода? Теперь у меня есть контроллер навигации с панели объектов, и я могу перетаскивать его на свои файлы пера, но что это значит в этом случае? А что значит "толкать"?


person Upvote    schedule 23.03.2011    source источник


Ответы (1)


Чтобы создать контроллер навигации с помощью существующего контроллера представления, вы можете использовать initWithRootViewController:

UINavigationController *navigationController =
   [[UINavigationController alloc] initWithRootViewController:myTTMessageComposer];

Однако, если вы используете панель навигации только для «украшения» (т. е. вы фактически не будете перемещаться из представления сообщений), вы можете просто добавить панель навигации непосредственно в представление TTMessageComposer.

Чтобы узнать о контроллерах представления и навигации, прочитайте Просмотреть руководство по программированию контроллера для iOS.

person mmalc    schedule 24.03.2011
comment
Если я сделаю это так, как вы описываете, TTMessageController даже автоматически создаст для меня элементы панели :) большое спасибо! - person Upvote; 24.03.2011