Используйте свой rootViewController
.Вы можете представить модальный контроллер представления из любого подкласса контроллера представления.Если ваш корневой VC является UITabBarController, то вы можете сделать:
[self.tabBarController presentModalViewControllerAnimated:YES]
или, если это контроллер навигации:
[self.navigationController presentModalViewControllerAnimated:YES]
и т. Д.
EDIT: MVC
Пытаясь представить контроллер из представления, вы нарушаете шаблон MVC.Как правило, представление касается его внешнего вида и предоставления интерфейсов для передачи состояния пользовательского интерфейса его контроллеру.Например, если у вас есть UIButton
в вашем представлении, и вы хотите, чтобы оно представляло контроллер модального представления, вам не нужно жестко связывать представление для этого.Вместо этого, когда контроллер создает экземпляр представления, контроллер настраивает кнопку, устанавливая себя в качестве цели для получения действия touchUpInside
, в котором он может представить соответствующий контроллер модального представления.
Само представление не делает (ине должен обладать этими контекстными знаниями для выполнения работы диспетчера.