Sobes.tech
Junior — Middle

Como você implementa um delegado para gerenciar a tabela no seu projeto?

sobes.tech IA

Resposta da IA

Para gerir uma tabela (UITableView) no iOS, normalmente cria-se uma classe que implementa os protocolos UITableViewDelegate e UITableViewDataSource. O delegado é responsável por tratar os eventos de interação com a tabela, e a fonte de dados (data source) por fornecer os dados.

Exemplo de implementação do delegado e da fonte de dados:

class MyTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    let data = ["Maçã", "Banana", "Laranja"]

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
        cell.textLabel?.text = data[indexPath.row]
        return cell
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        print("Elemento selecionado: \(data[indexPath.row])")
    }
}

No projeto, normalmente cria-se uma classe ou extensão separada para o delegado, para separar a lógica de apresentação e manipulação de eventos do controlador.