Eu quero ir para a terceira visualização na pilha de navegação de volta para a primeira visualização.
Eu sei como abrir uma visualização de uma vez:
[self.navigationController popViewControllerAnimated:YES];
Mas como faço dois de uma vez?
ios
iphone
uinavigationcontroller
Adam Waite
fonte
fonte
Respostas:
Você pode tentar isso para pular entre a pilha do controlador de navegação também
fonte
Aqui estão duas
UINavigationController
extensões que podem resolver seu problema. Eu recomendaria usar o primeiro que aparecer em umaUIViewController
classe específica:e use-o assim:
fonte
removeLast
por apenasremoveLast(2)
.let vc = viewControllers[viewControllers.count - viewsToPop + 1]
, para funcionar corretamente você precisa substituí-lo por:let vc = viewControllers[viewControllers.count - (viewsToPop + 1)]
oulet vc = viewControllers[viewControllers.count - viewsToPop - 1]
Você pode acessar o controlador de visualização "raiz" (primeiro) com
popToRootViewControllerAnimated
:UINavigationController
Referência :fonte
objectAtIndex: 1 -> você pode passar qualquer índice para o qual deseja colocar
fonte
Swift 2 - xCode 7.3
Esta poderia ser uma extensão muito útil para pop UIViewControllers:
fonte
Se você quiser apenas pop 2 de uma vez porque seu rootViewController é (muito) 'mais profundo' que 2, você pode considerar adicionar uma categoria a UIviewController, por exemplo:
UINavigationController + popTwice.h
UINavigationController + popTwice.m
Importe a categoria
#import "UINavigationController+popTwice.h"
em algum lugar em sua implementação e use esta linha de código para abrir 2 controladores de uma vez:não é ótimo? :)
fonte
Então use este método
fonte
Você também pode tentar este: -
fonte
fonte
fonte
No Swift 3 , você pode ativar um, dois ou mais controladores de visualização do controlador de navegação como esse
Aqui, FromWhereYouWantToGoController é o controlador de destino. Espero que ajude.
fonte
Você pode passar o controlador de visualização inicial (aquele para o qual você deseja voltar) e, em seguida, chamar esta linha na última visualização:
EU.
fonte
Eu não vi essa resposta aqui. Se você quiser apenas alguns (não até a raiz), pode apenas iterar por meio de self.navigationController.viewControllers verificando os tipos de classe ou, se tiver uma referência, use isso:
fonte
você pode voltar para o controlador de visualização raiz
ou, se a visualização que você deseja exibir não for a primeira, você precisará voltar ao viewWillAppear de sua visualização anterior
fonte
Aqui está uma pequena função que estou usando para voltar X ViewControllers:
fonte
Versão Swift a partir de (Swift 1.2 / Xcode 6.3.1) de popping duas ou mais
ou
fonte
Você pode usar a pilha de UIViewControllers. 1. Busque a matriz de todos os viewControllers na pilha. 2. Itere por todo o array e encontre o viewController desejado
, combinando o tipo de classe. 3. Abra o viewController.
fonte
Usando uma extensão UINavigationController simples :
fonte