Imagine que você tem uma sequência de visualizações em seu storyboard:
A -> ... -> Z
Você deseja ter um botão à vista Z
que permita ao usuário voltar até A
.
Portanto, o que você precisa fazer é fornecer a visualização que deseja retornar, neste caso A
, um método de instância que está marcado como a IBAction
e recebe um único parâmetro do tipo UIStoryboardSegue *
. O nome do método e da variável não importa. O que você faz na implementação também não importa. Aqui está um exemplo:
Obj-C:
Na A
's de interface (não Z
' s):
- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue;
Na A
implementação de (não Z
):
- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue {
// Only "implemented" to satisfy a respondsToSelector: search.
// You can actually implement more stuff here, if you want, IE, if
// you need to reach out to a server to mention that this screen was
// returned to from a later screen.
}
Swift: Fonte de
In A
(não Z
):
@IBAction func cancelSignup(unwindSegue: UIStoryboardSegue) {
// Only "implemented" to satisfy a respondsToSelector: search.
// You can actually implement more stuff here, if you want, IE, if
// you need to reach out to a server to mention that this screen was
// returned to from a later screen.
}
Agora, dentro do seu storyboard, controlarraste de um elemento Z
(ou seja, um botão cancelar) para Z
's Exit
. Ele percorrerá todas as visualizações no topo da hierarquia de visualizações que possuem um IBAction
que aceita apenas uma única UIStoryboardSegue *
como uma ação e as relaciona para você escolher.
Esperançosamente, isso foi mais direto e útil do que as respostas existentes. Descobri que este link foi particularmente útil, então se houver um detalhe no qual você ainda está confuso depois de ler minha resposta, talvez isso possa ajudá-lo (eu tentei apenas condensar todas as informações úteis deste longo artigo em uma resposta curta):
http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html