как убрать навигационный контроллер с видом - PullRequest
0 голосов
/ 04 августа 2010

У меня есть приложение с панелью вкладок и панелью навигации. Для одного из действий я создаю экземпляр контроллера навигации программно и добавляю представление с табличным представлением. Я хочу удалить эту панель навигации и просмотр таблицы программным нажатием кнопки на новой панели навигации. как это сделать?

Я пробовал popview, но он не появляется.

1 Ответ

0 голосов
/ 03 марта 2011

Чтобы скрыть это

[[self navigationController] setNavigationBarHidden:YES];

Если вы добавили UINavigationController поверх другого UIViewController, то из контроллера uiNaviagation вы не сможете удалить панель навигации, даже если вы удалите текущий вид и все подпредставления. (родительский контроллер uiview также получает панель навигации)

Один из способов исправить это - получить доступ к делегату приложения и удалить вид сверху из окна до добавление UINavigationController

AppDelegate *dg = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
NSArray *ar = [[dg window] subviews];
//then remove all the views in ar
//then add uinavcontroller
[[dg window] addSubView:[uinavcontroller view]];

затем добавьте UINavigationController, когда вы хотите заменить UInavigationController первым UiViewController. выполните шаги, описанные выше.

...