В основном вы должны иметь в виду, что ваши IBOutlets ссылаемся UITextFields, а не числа.
Так что, имея в виду, вам нужно преобразовывать строки из двух строк в пары. Это означает, что вы можете попытаться разобрать Двойной из строки таким образом:
var text = String("5.0")
var double = Double(text)
print(double) // prints "5.0"
Я также сделал это «безопасным» для вас в том смысле, что если текст не является двойным, если заявление не будет выполняться, и, следовательно, вы не получите ошибок времени выполнения, просто ничего не произойдет. Это работает так же, как не существует «текста» в UITextFields, где if-statement не будет выполнен, и вы просто попросите приложение ничего не сделать.
Сочетание всех этих вещей дает нам что-то вроде этого:
class VC: UIViewController {
@IBOutlet weak var billAmount: UITextField!
@IBOutlet weak var tipAmount: UITextField!
@IBOutlet weak var totalAmount: UITextField!
@IBOutlet weak var numberOfPeople: UITextField!
@IBOutlet weak var splitValue: UITextField!
@IBAction func splitBill(_ sender: UIButton) {
if let totalAmountValue = Double(totalAmount.text!), let numberOfPeopleValue = Double(numberOfPeople.text!) { //safely get double values
splitValue.text = String(totalAmountValue/numberOfPeopleValue) //convert the quotient of the doubles into a string
}
}
@IBAction func totalAmount(_ sender: UIButton) {
if let billAmountValue = Double(billAmount.text!), let tipAmountValue = Double(tipAmount.text!) {
totalAmount.text = String(billAmountValue * tipAmountValue)
}
}
}