Article image
Josué Amorim
Josué Amorim20/08/2023 15:37
Compartilhe

Dominando a Passagem de Dados entre Telas no Desenvolvimento Mobile com Swift

  • #Swift

Introdução

O desenvolvimento mobile tem se tornado cada vez mais popular, e a linguagem Swift se destaca como uma das principais escolhas para a criação de aplicativos para dispositivos iOS. Uma das tarefas fundamentais para quem está começando nesse mundo é entender como passar dados entre diferentes telas de um aplicativo. Essa é uma dúvida comum entre iniciantes, mas com o conhecimento certo, essa habilidade pode ser dominada de forma eficaz.

Passagem de Dados entre Telas

Ao construir um aplicativo iOS, é comum ter várias telas (também conhecidas como view controllers) que compõem a interface do usuário. Em muitos casos, você precisará passar dados de uma tela para outra, por exemplo, para exibir informações de um usuário em uma tela de perfil ou para mostrar detalhes de um item selecionado em uma lista. Existem algumas abordagens comuns para lidar com essa passagem de dados.

1. "Segue e Prepare"

Uma abordagem muito utilizada para passar dados entre telas é utilizando o padrão "Segue and Prepare". O Xcode permite que você crie conexões de segue entre telas diretamente no Storyboard. Ao criar um segue, você pode implementar o método prepare(for:sender:) no view controller de origem para preparar os dados que serão passados para o próximo view controller.

Exemplo de código:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  if segue.identifier == "ShowDetailsSegue" {
      if let destinationViewController = segue.destination as? DetailsViewController {
          destinationViewController.data = someData
      }
  }
}


2. Delegados

Outra maneira de passar dados é através do uso de delegados. Um delegado é um padrão de projeto que permite que um objeto delegue responsabilidades para outro objeto. Isso é especialmente útil quando você precisa passar dados de volta para a tela anterior.

Exemplo de código:

protocol DataDelegate: class {
  func didReceiveData(data: String)
}


class SendingViewController: UIViewController {
  weak var delegate: DataDelegate?
  
  func sendData() {
      delegate?.didReceiveData(data: "Hello from SendingViewController")
  }
}


class ReceivingViewController: UIViewController, DataDelegate {
  func didReceiveData(data: String) {
      print(data) // Output: "Hello from SendingViewController"
  }
}


3. Singleton

Um Singleton é um padrão de projeto que permite que uma classe tenha apenas uma única instância global. Isso pode ser usado para compartilhar dados entre diferentes partes do seu aplicativo, incluindo diferentes telas.

Exemplo de código:

class DataManager {
  static let shared = DataManager()
  var someData: String = ""
}


// Em uma tela
DataManager.shared.someData = "Data from first screen"


// Em outra tela
print(DataManager.shared.someData) // Output: "Data from first screen"


Conclusão

Dominar a passagem de dados entre telas é um passo essencial para quem está começando no desenvolvimento mobile com Swift. As abordagens apresentadas - "Segue and Prepare", delegados e Singletons - oferecem maneiras diferentes de realizar essa tarefa com eficácia. À medida que você ganha mais experiência, poderá escolher a abordagem que melhor se adequa às necessidades específicas do seu aplicativo. Com prática e paciência, você estará mais confiante na construção de interfaces complexas e funcionais para os seus aplicativos iOS.

Compartilhe
Comentários (0)