В приложении используется content view controller (сабкласс от UIViewController) с несколькими view controllers внутри. Весть интерфейс пишется полностью в коде.
Первый из контроллеров - основное меню, из которого идёт переключение на другие контроллеры. Примерная схема:
rootContainerViewController
| | |
mainMenuViewController optionsViewController helpViewController
|- buttonToOption | |
|- buttonToHelp backButton backButton
У каждой кнопки - уникальный tag. Кнопкам назначены target:
...Button addTarget: nil action: (buttonPressed)...
Тач на кнопку поднимается по Responder chain до rootContainerViewController, там обрабатывается в методе buttonPressed, перебирая в блоке switch case все tag пришедшие от кнопки, и уже потом меняя нужные child view controller.
"Это вообще нормально"? Или есть какие-то "более правильные" методы переключения между контроллерами?