2013-04-22 2 views
1

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

В одном из представлений на вкладке я хочу представить первый контроллер представления другой вкладки.

В моем tabViewController.viewControllers имеется массив навигационных контроллеров для каждой вкладки.

Я не могу представить контроллер представления напрямую, не обращаясь к контроллеру навигации, и я думаю, вы не можете представить навигационный контроллер. Что я делаю неправильно?

ответ

1

Если вы правильно поняли, вы можете получить доступ к своему корневому контроллеру примерно так: [[tabViewController.viewControllers objectAtIndex:index] objectAtIndex:0], но я не думаю, что вы можете отобразить один вид дважды. Таким образом, вы все равно должны воссоздать этот контроллер представления, чтобы отобразить его на другой вкладке как childViewController, например

+0

'UINavigationController * mycont = [self.tabBarController.viewControllers objectAtIndex: 2]; [self.tabBarController presentViewController: [mycont.viewControllers objectAtIndex: 0] анимированный: ДА завершение: nil]; ' Вышеупомянутый код вызывает ошибку Завершение приложения из-за неперехваченного исключения« NSInvalidArgumentException », причина:« Приложение попыталось представить модально активный контроллер . ' – SunnyPenguin

+1

Bcz вы пытаетесь представить уже видимый контроллер. –

+0

Восстановить контроллер viewController и контроллер навигации, а затем снова заменить его в 'tabbarController.viewControllers'? Правильно ли я интерпретирую ваш ответ? – SunnyPenguin