Olá, quando adiciono essa linha de código o app fecha dando erro. Só ocorre com esse comando especificamente, todo o resto continua funcionando normalmente.
Segue o código de ambos os Controllers: ViewController -
import UIKit
class ViewController: UIViewController {
var tableViewController: RefeicoesTableViewController?
@IBOutlet var nomeTextField: UITextField?
@IBOutlet weak var felicidadeTextField: UITextField?
@IBAction func adicionar() {
guard let nomeDaRefeicao = nomeTextField?.text else { return }
guard let felicidadeDaRefeicao = felicidadeTextField?.text, let felicidade = Int(felicidadeDaRefeicao) else { return }
let refeicao = Refeicao(nome: nomeDaRefeicao, felicidade: felicidade)
print("Comi \(refeicao.nome) e fiquei com felicidade \(refeicao.felicidade)")
tableViewController?.add(refeicao)
navigationController?.popViewController(animated: true)
}
}
RefeicoesTableViewController
import UIKit
class RefeicoesTableViewController: UITableViewController {
var refeicoes = [Refeicao(nome: "Macarrão", felicidade: 5),
Refeicao(nome: "Pizza", felicidade: 4),
Refeicao(nome: "Comida Japonesa", felicidade: 5)]
override func viewDidLoad() {
super.viewDidLoad()
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return refeicoes.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let celula = UITableViewCell(style: .default, reuseIdentifier: nil)
let refeicao = refeicoes[indexPath.row]
celula.textLabel?.text = refeicao.nome
return celula
}
func add(_ refeicao: Refeicao) {
refeicoes.append(refeicao)
tableView.reloadData()
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let viewController = segue.destination as? ViewController {
viewController.tableViewController = self
}
}
}