Изменение viewcontroller для вкладки в контроллере вкладок - PullRequest
4 голосов
/ 05 июня 2011

В настоящее время я занимаюсь разработкой приложения, в котором есть TabBarController, а каждая вкладка содержит контроллер навигации. Таким образом, на каждой вкладке я могу показать детали строк, выбранных в представлении, нажав контроллер вида на контроллер навигации. У каждого из представлений также есть UINavigationItem над ними. В этот элемент навигации я поместил кнопку.

Но теперь я хотел бы изменить контроллер представления для определенной вкладки, когда нажимаю кнопку в UINavigationItem, НО представление (контроллер), на которое я хочу перейти, должно действовать как корневой контроллер представления этой вкладки. *

Поэтому я не хочу выдвигать другое представление на контроллере навигации, а просто переключаюсь на это представление (на той же вкладке) и выполняю его в качестве корневого контроллера представления.

Я не могу найти хороший способ сделать это, на самом деле с правильной работой представлений. Они либо не освобождают, когда я переключаю представления (что было бы неплохо, потому что я хочу, чтобы использование памяти было минимальным).

Одним из способов решения этой проблемы может быть добавление дополнительных вкладок в контроллер TabBar и переключение на нужные вкладки при нажатии кнопки, но это будет последним средством.

Не совсем уверен, правильно ли я это описал, но мне было интересно, как лучше это сделать. Я предпочитаю иметь 3 вида контроллеров и переключаться между ними.

1 Ответ

7 голосов
/ 05 июня 2011

Надеюсь, я правильно понял ваш вопрос: вы хотите просто "сбросить" свой контроллер навигации, чтобы получить новый рут.

Вы можете сделать это, сообщив контроллеру навигации, что вы хотите отобразить новый набор контроллеров представления:

[navigationController setViewControllers:[NSArray arrayWithObject:newViewController] 
                                animated:NO];

Это избавит от всех контроллеров представления, в настоящее время находящихся в стеке этого контроллера навигации, и сбросит корневое представление к newViewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...