Boa noite!
Gostaria de entender o por quê extender o protocolo AddAMealDelegate
gerar erro na classe UIViewController
?
Type 'ViewController' does not conform to protocol 'AddAMealDelegate'
Obrigado!
Boa noite!
Gostaria de entender o por quê extender o protocolo AddAMealDelegate
gerar erro na classe UIViewController
?
Type 'ViewController' does not conform to protocol 'AddAMealDelegate'
Obrigado!
Fala aí Rodrigo, blz?
O AddAMealDelegate
é um Protocol
(que são análogos a interfaces
).
Sendo um protocolo você não extende ele, você o implementa.
Quando você fez seu UIViewController
implementar (entrar em conforme com o protocolo) você implementou os métodos declarados na protocolo AddAMealDelegate
na classe UIViewController
?
Opa, Fernando, beleza e vc?
Eu implementei, igual a realizamos na TableController:
class ViewController: UIViewController, AddAMealDelegate
Como eu poderia utilizar o um protocolo na ViewController?
Blz,
Você precisa declarar os métodos do AddAMealDelegate
dentro da sua classe ViewController
.
Se estiver com dúvida de como fazer isso, me manda a suas classes ViewController
e AddAMealDelegate
que te explico diretamente com o seu código.
Vdd! Com a continuidade do curso eu vi isto. Falha minha msm. Com a implementação da função do protocolo na Controller, funcionou!
Obrigado! =)
Opa, precisando é só mandar as dúvidas.
Bons estudos!
Estou tendo um erro com delegate!.add(meal:Meal) . O resto esta funcionando.
https://twitter.com/vero__tietando/status/914145733825179656 ``` insira seu código aqui class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var nameField: UITextField? @IBOutlet var happinessField: UITextField? var delegate:AddAMealDelegate?
var items = [ item(name: "Chocolate Brownie", calories: 10), item(name: "Zuccchini Lazanha", calories: 90), item(name: "Salsicha", calories: 15), item(name: "Pizza", calories: 100), item(name: "Lazanha", calories: 800), ]
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return items.count }
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let row = indexPath.row let item = items[row] let cell = UITableViewCell(style:UITableViewCellStyle.default,reuseIdentifier: nil) cell.textLabel?.text = item.name return cell }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let cell = tableView.cellForRow(at: indexPath) if cell == nil { return } cell!.accessoryType = UITableViewCellAccessoryType.checkmark }
@IBAction func add() {
if nameField == nil || happinessField == nil{ return }
let name:String = nameField!.text! let happiness:Int = Int(happinessField!.text!)!
let meal = Meal(name: name,happiness: happiness) print("eaten: (meal.name) (meal.happiness)!")
if (delegate == nil){ return } delegate!.add(meal:Meal)
if let navigation = self.navigationController{ navigation.popViewController(animated: true) }