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!!! :)