Я получаю такую ​​ошибку:

Значение типа DiscountVC не имеет элемента calculateTotal. И я понятия не имею, почему. В основном я пытаюсь сделать такой калькулятор:

enter image description here

Он должен работать, как только вы вставите какое-либо значение в discountTF. Кроме того, у меня есть несколько кнопок с предварительной скидкой, которые просто редактируют значение скидки. Значение subtotalLabel происходит от другого ViewController. Для целей тестирования я использую начальное значение 999,9.

import UIKit

class DiscountVC: UIViewController {

    @IBOutlet var numericKeyboardView: UIView!

    @IBOutlet var subtotalLabel: UILabel!
    @IBOutlet var discountTF: UITextField!
    @IBOutlet var totalLabel: UILabel!

    var subtotal : Double = 999.9
    var discount : Double = 0.0

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        addKeyboard(view: numericKeyboardView)
        subtotal = 999.9
        discount = 0.0
        discountTF.addTarget(self, action: #selector(self.calculateTotal(_:)), for: UIControl.Event.editingChanged)
    }

    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }

    func calculateTotal() {
        let totalDouble = Double(subtotal) - Double(discountTF.text!)!
        totalLabel.text = String(totalDouble)
    }

    func addKeyboard(view: UIView) {
        let numericKeyboard = KeyboardVC(nibName: "NumericKeyboardVC", bundle: nil)
        view.addSubview(numericKeyboard.view)
        addChild(numericKeyboard)
    }

    @IBAction func fivePercentedButtonPressed(_ sender: Any) {
        discount = Double(discountTF.text!)! * 0.05
        discountTF.text = "\(discount)"
        print(discount)
    }

    @IBAction func tenPercentButtonPressed(_ sender: Any) {
        discount = Double(discountTF.text!)! * 0.1
        discountTF.text = "\(discount)"
        print(discount)
    }

    @IBAction func fifteenPercentButtonPressed(_ sender: Any) {
        discount = Double(discountTF.text!)! * 0.15
        discountTF.text = "\(discount)"
        print(discount)    
    }

    @IBAction func twentyPercentButtonPressed(_ sender: Any) {
        discount = Double(discountTF.text!)! * 0.2
        discountTF.text = "\(discount)"
        print(discount)    
    }

    @IBAction func goButton(_ sender: Any) {
    }

}
0
Jose Fermin 21 Ноя 2018 в 23:40

1 ответ

Лучший ответ

Изменить на

@objc func calculateTotal(_ tex:UITextField){ --- }
3
Sh_Khan 21 Ноя 2018 в 20:45