Não entendi: porque o Alerta(Controller: self).exibe - pq o Controller é o self sendo que a classe foi criada em outro arquivo? Não entendi.
Não entendi: porque o Alerta(Controller: self).exibe - pq o Controller é o self sendo que a classe foi criada em outro arquivo? Não entendi.
Olá Caio!
No primeiro vídeo da alura 4, quando o professor cria a classe Alerta, ele cria um inicializador onde é preciso passar um controller como argumento:
class Alerta {
let controller: UIViewController
init(controller: UIViewController)
self.controller = controller
}
... Esse objeto controller é usado na última linha do método exibe :
controller.present(alerta, animated: true, completion: nil)Isso acontece pois os alertas precisam de uma interface com o usuário para serem mostrados (através do present) e para que o usuário possa interagir com eles, ou seja, precisa de um ViewController.
Quando você instancia a classe Alerta na sua classe ViewController, você precisa dizer para a classe Alerta que o controller que será responsável por mostrar o alerta é você mesmo, e a forma de dizer isso é com a palavra self.
Alerta(controller: self).exibe()Espero que tenha ajudado!!! :)