PoPtorootViewController no 3º nível, sem pop nos itens de Barbutton
-
28-09-2019 - |
Pergunta
Estou empurrando para alguns viewcontrollers com meu uinavigationcontroller e quando estou no meu terceiro uisubviewcontroller, codifiquei para 'poptorootviewcontroller' e ele está de volta, mas Os itens NavigationBar empurram para o 2º controlador de visualização, não para o 1º ..
- Eu tentei com e sem animar, mas nada vai mudar.
- Eu tentei dizer self.navigationcontroller.navigationbar se afastar, mas não faz nada no meu bar.
Obrigado pela ajuda ..
Solução
Estou um pouco confuso com a sua pergunta, mas acho que isso deve ajudar. Até onde eu sei, você não pode ter o botão "Voltar" em um UinavigationController, volte mais de 1 pop. Então, o que você faz é que você precisa adicionar outro botão que faça a função PoptorootViewController. Tente algo assim:
UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithTitle:@"Home" style:UIBarButtonItemStylePlain target:self action:@selector(homeAction:)];
self.navigationItem.rightBarButtonItem = newButton;
Isso adicionará um botão à direita no seu controlador de navegação. O próximo passo é adicionar uma função chamada qualquer nome na ação (neste caso, ela precisa ser chamada de "homenagem"). Parece que sim:
-(IBAction)homeAction:(id)sender {
[self.navigationController popToRootViewControllerAnimated:YES];
}
Isso deve cobrir o pop de volta à raiz do controlador onde quer que você esteja na pilha. Você também precisará o método do ibaction para o seu arquivo .h, mas isso deve fazer tudo o que deseja.
Outras dicas
A menos que você esteja fazendo algo estranho com a matriz de UiviewControllers do NavigationController, o método deve ser:
[self.navigationController popToRootViewControllerAnimated:YES];