1
resposta

Como evitar o prepare for segue grande

Bom dia! No final da aula foi citado o problema de view controller massivo envolvendo o "prepare for segue", mas navegando pelos outros cursos ainda não encontrei a solução. Numa tela onde eu tenho a possibilidade de navegar para outras 10, por exemplo, qual a solução alternativa para realizar essa navegação sem poluir o View controller?

1 resposta

Oi Jerônimo, tudo bem?

Primeiramente, perdoe a demora para responder!

Acredito que em vez de usar o if-else, para ficar algo mais claro, você pode usar o switch case, na minha visão é melhor do que adicionar vários if-elses, dessa maneira:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if let identifier = segue.identifier {
        switch identifier {
        case "view1":
            // Código aqui
        case "view2":
            // Código aqui
        }
    }
}

Porém, mesmo assim, e como você mesmo disse, isso ainda não é uma boa prática. Nessa aula (no minuto 5:20), o instrutor relata a mesma questão, se tivermos muitas segues diferentes e identificadas, o arquivo poderá ficar muito grande. É necessário evitar isso para que não tenhamos um View Controller massivo com muitas responsabilidades, linhas, bastante acoplado e de difícil manutenção.

Logo, deveremos tomar algum cuidado com o método prepare(). Nas aulas posteriores (no módulo 07, para ser mais específica), o instrutor cria uma navegação de telas de forma mais desacoplada e sem a necessidade desta função, retirando responsabilidade do View Controller. Portanto, recomendo você seguir o curso que ele irá resolver este problema.

Espero ter ajudado!