0

Я использую PKRevealController, который предоставляет функциональность бокового меню для приложения.Сброс rootViewController на NavigationController

У меня есть UIbuttons в боковом меню, и они запускают представление, которое нужно нажать на стек навигационной панели. Однако при каждом нажатии на кнопку просмотра отображается кнопка назад, которая ведет к контроллеру навигационного представления.

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

ответ

0

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

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

UIViewController * root = nil; 
UINavigationController *rootNavController = [[[UINavigationController alloc]initWithRootViewController:root] autorelease]; 
[root release]; 
NSMutableArray * viewControllersArray = [NSMutableArray arrayWithArray:self.tabBar.viewControllers]; 
[viewControllersArray removeObject:[viewControllersArray lastObject]]; 
[viewControllersArray addObject:rootNavController]; 
[self.tabBar setViewControllers:viewControllersArray animated:NO]; 

панели вкладок Если вы хотите иметь больше чем один, вместо удаления последнего один все время вы должны будете удалить первый. Так что вам придется заменить lastObject с objectAtIndex: 0 и AddObject с insertObject: atIndex: 0

Надеется, что это помогает

2

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

Вы можете попробовать это ..... Просто замените этот код в контроллере FrontView didSelectRowAtindexPath

  // [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
     self.navigationController.viewControllers = [NSArray arrayWithObject: [[LeftDemoViewController alloc]init]]; 
Смежные вопросы