Componente de modal em swift 5.x para ser utilizado, também, como um alerta controlado pela interação do usuário.
Para configurá-la basta definir uma propriedade na ViewController que irá chamar o componente do tipo ModalViewController e no método de setup efetuar a criação sua configuração:
modalView = ModalViewController(withType: .modal(title: "Título da modal"), initialHeight: 88)
modalView?.delegate = self
modalView?.configure(in: self)
modalView?.addView(getTableView())
Na linha 1 o atributo withType define o tipo de modal a ser construído (seus tipos necessários são: .modal ou .alert). Posteriormente, ainda na linha 1 o atributo initialHeight é responsável pela altura de apresentação do componente, minimizado (em caso de tipo .modal) ou expandido (em caso de tipo .alert).
A linha 2 define a responsabilidade de alguns métodos de ação acionados na modal publicamente para a classe desejada, no exemplo é a própria ViewController.
Na linha 3 é acionado o método configure(in:), anida estou analisando se este método é estritamente necessário, dado que já podemos considerar que quem delega é ou pode ser a classe a ser configurada mas no momento é a melhor opção no quesito de desacoplamento do componente.
Por fim, na linha 4 é acionado o método addView(), no qual é responsavel por receber a view que será exibida no "container" da modal (este método pode ser acionado em várias sequências afim de adicionar 'n' views).
Independente da configuração efetuada, para apresentar a modal, é necessário apenas a utilização do método show. Este método possui apenas um parâmetro opcional como callback afim de possibilitar mais ações ao executor para tomar decisões exatamente após os efeitos de transições que são acionados.
| Modal aberta |
|---|
| Modal fechada | Modal aberta (s/background) |
|---|---|
![]() |
![]() |

