2017-01-15 8 views
0

私はたくさんのテキストフィールドとボタンを作成しました。基本的には、法案の金額にチップ金額を掛け、合計金額を人数で割ってみたいと思います。私はそれらを変数にすることを考えていたが、それを行う方法がわからなかった。私は2つのUItextfieldsを掛ける必要があります

@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) { 
    splitValue.text = totalAmount/numberOfPeople 
} 

@IBAction func totalAmount(_ sender: UIButton) { 
    let newBillAmount = 
    totalAmount.text = billAmount * tipAmount 
} 

答えて

0

基本的に、IBOutletは数字ではなくUITextFieldを参照していることに注意してください。

これを念頭において、文字列からDoublesに変換する必要があります。これは、あなたがそうのような文字列からダブルを試してみて、解析できることを意味します

var text = String("5.0") 
var double = Double(text) 
print(double) // prints "5.0" 

私はテキストは二重でない場合は、if文がないという意味ではあなたのためにそれが「安全」もしてきました実行されると、実行時エラーが発生することはありません。何も起こりません。これは同じ方法で、UITextFieldsに "text"がなく、if文が実行されず、アプリケーションが何もしないようにするためです。

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) 
     } 

    } 
} 
:これらの事のすべてを組み合わせる

は私たちにこのような何かを与えます

関連する問題