Agora voltamos ao Storyboard, selecionamos ViewControllerC e arrastamos do controlador de visualização para o proxy de Saída.

Dragando para o proxy Exit

No popup selecionamos o nosso método de desenrolar.

Selecionando o método de desenrolamento

Finalmente, damos um identificador ao nosso desenrolamento.

O desenrolar segue agora tem um identificador e está ligado ao método de desenrolar.

Agora tudo o que nos resta é desencadear o desenrolar segue quando o nosso botão é premido.

@IBAction func backToATapped(_ sender: Any) {
performSegue(withIdentifier: "unwindToA", sender: self)
}

Acabamos! 🥂

Desbobinar segue

alguns detalhes técnicos

Antes de concluir este artigo quero ver o que o tempo de execução está a fazer debaixo do capô.

Localizar o destino é basicamente uma subida na hierarquia do controlador de visualização. O controlador de visualização atual ou apresentandoViewController será o próximo.

Em cada parada, o tempo de execução também tem que verificar se o controlador de visualização tem algum filho porque o método de desenrolar pode estar contido em um desses. Isso é feito chamando o método permitidoChildrenForUnwinding(from:), que retorna um array de UIViewControllers que são filhos do controller de visualização.

No entanto, não queremos verificar o branch que contém o controller de visualização do código fonte, já que acabamos de vir de lá. Isso é evitado chamando o método childContaining(_:), que retorna o controller child view que contém a fonte da sequência de desenrolar. Isso é removido do array.

Se o array retornado contém algum filho, o processo acima também é executado neles. Ele chega ao fim se o destino for encontrado.

Se o array retornado estiver vazio, o método canPerformUnwindSegueAction(_:from:sender:) é chamado, que verifica se o controlador de visualização contém o método de desenrolar.

Se o fizer, nós chegamos ao nosso destino e o processo é finalizado. Se não chegar, subimos um passo na hierarquia do view controller e executamos os mesmos passos.

Conclusion

Espero que você tenha gostado deste pequeno tutorial sobre desenrolar segue, obrigado por dedicar um tempo para lê-lo.

Articles

Deixe uma resposta

O seu endereço de email não será publicado.