Em um aplicativo para iPhone baseado em UINavigationController, em um método, eu gostaria de realizar o equivalente programático de pressionar o botão Voltar e voltar uma visualização.
ou seja, pressione automaticamente o botão Trabalhos como visto aqui:
Posso fazer uma chamada genérica do iOS ou são necessárias mais informações?
ios
objective-c
button
uinavigationcontroller
Oberbaum
fonte
fonte
[self.navigationController popViewControllerAnimated:YES];
mas não faz nada, no entanto, há um alerta ao gravar esse botão que está funcionando.Assumindo que você não deseja PRESSIONAR o botão programaticamente, mas simplesmente copiar o resultado de pressionar o botão, você deve dizer ao controlador de navegação para abrir o controlador de visualização atual.
[self.navigationController popViewControllerAnimated:YES];
Isso o removerá da pilha e o levará de volta ao controlador de visualização anterior.
fonte
Swift 3.0
self.navigationController?.popToRootViewController(animated: true)
self.navigationController?.popViewController(animated: true)
Swift 2.3
self.navigationController?.popToRootViewControllerAnimated(true)
self.navigationController?.popViewControllerAnimated(true)
fonte
Você deveria ligar
popViewControllerAnimated:
que é o oposto de adicionar controladores de visualização com
pushViewController:animated:
fonte
[self.navigationController popViewControllerAnimates:YES];
é a melhor opção, mas se você não estiver na mesma classe do controlador de visualização ou se o seu delegado mudar antes de o método do botão Voltar ser chamado, você também pode tentar -
primeiro você deve definir o botão Voltar ---
UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"anyTitleForBackButton" style: UIBarButtonItemStyleBordered target: nil action: @selector(backButtonTapped)]; [[self navigationItem] setBackBarButtonItem: newBackButton]; [newBackButton release];
e então no método backButtonTapped você pode chamar -
[self.navigationController pushViewController:desiredViewController animated:YES];
fonte