2
respostas

Problema com os checkmarks

Boa noite,

tem tres topicos falando que nao esta funcionando e sem solução....

aqui tambem, nao aparece o botão de adicionar, e não funciona o CheckMark

//
//  ViewController.swift
//  eggplant-brownie
//
//  Created by Andre de Oliveira Couto on 17/11/21.
//

import UIKit

protocol AdicionaRefeicaoDelegate{
    func adicionar(_ refeicao:Refeicao)
}

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    // MARK: - @IBOutlet
    @IBOutlet weak var nomeComida: UITextField?
    @IBOutlet weak var notaComida: UITextField?

    // MARK: - Atributos
    var tabelaDeRefeicoes: AdicionaRefeicaoDelegate?
    var itens:[String] = ["molho de tomate", "massa pronta","tempero"]

    // MARK: - UITableViewDataSource

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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let celula = UITableViewCell(style: .default, reuseIdentifier: nil)
        celula.textLabel?.text = itens[indexPath.row]
        return celula
    }

    // MARK: UITableViewDelegate

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        guard let celula = tableView.cellForRow(at: indexPath) else {return}
        if celula.accessoryType == .none {
            celula.accessoryType = .checkmark
        }
        else {
            celula.accessoryType = .none
        }

    }

    // MARK: - @IBAction
    @IBAction func adicionar(){
        //forma safe 2
//        if let nome = nomeComida?.text, let felicidade = notaComida?.text {
//            if let nota = Int(felicidade) {
//                let refeicao = Refeicao(nome:nome, felicidade:nota)
//                print("comi \(refeicao.nome) e fiquei feliz nota: \(refeicao.felicidade)")
//            }else{
//                print("erro ao criar refeicao")
//            }
//
//
//        }else{
//            print("erro ao criar refeicao 1")
//        }

        //forma safe 2
        guard let nome  = nomeComida?.text else{
             return
        }
        guard let felicidadeDaRefeicao = notaComida?.text, let felicidade = Int(felicidadeDaRefeicao) else{
            return
        }

        let refeicao = Refeicao(nome:nome, felicidade:felicidade)
        tabelaDeRefeicoes?.adicionar(refeicao)
        navigationController?.popViewController(animated: true)

    }


}

2 respostas

Boa tarde apenas para registro, o problema por algum motivo era no emulador......troquei de iphone 8 para iphone 11 e funcionou.....

Oiii André, tudo certo?

Vi aqui no seu código e realmente essa parte do checkmark está correta!

Comportamento estranho esse de não funcionar no iPhone 8, tente reiniciar o simulador e veja se funciona!!

Abraços!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software