3
respostas

Dúvida com o "prepare for segue"

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let viewController = segue.destination as? ViewController {
viewController.tableViewController = self;
} }

Olá, não entendi o motivo/funcionalidade dessa função dentro do código. Não tenho uma dúvida específica, apenas não entendi absolutamente NADA com relação a ela.

3 respostas

Oi Vitor, tudo bem ?

Vi que sua dúvida está aberta já faz um tempinho, será que já conseguiu resolver ? Se sim fala pra gente o que entendeu e tals?

Na realidade não. Eu apenas utilizo o código sem entender mesmo e vida que segue.

Oi Vitor, tudo bem?

Primeiramente, mil perdões para a demora na resposta!

Veja que se tirarmos esse método prepare, a nossa tabela não recebe os dados que foram adicionados.

Nesse método, nós identificamos qual a próxima view a ser mostrada. Portanto, primeiramente ele faz uma verificação se a view de destino é do tipo ViewController. E realmente é, pois quando estamos na RefeicoesTableViewController, nós passamos para o ViewController.

Agora, já que fizemos a verificação da View, que é do tipo ViewController, vamos alterar as propriedades/variáveis/métodos dessa View. E uma das propriedades que vamos alterar é a propriedade tableViewController. Lembrando que essa propriedade nós declaramos lá no ViewController:

var tableViewController: RefeicoesTableViewController?

Certo? Com isso, nós falamos que essa propriedade é igual a self. E self nada mais referencia a classe que estamos utilizando no momento. No caso, estamos na classe RefeicoesTableViewController, portanto self representa essa classe.

Estamos falando que tableViewController, é, na verdade, toda a classe RefeicoesTableViewController.

Espero ter ajudado, bons estudos =)