リセットボタンを実装したいです。
割り勘アプリを作成していて、
計算して結果を出した後に、
リセットボタンを押すと
人数と金額に入力するされた数字が
空欄の状態になるようにしたいです。
発生している問題・エラーメッセージ
エラーメッセージはないです。
該当のソースコード
swift
1 2import UIKit 3 4class ViewController: UIViewController { 5 6 @IBOutlet weak var ninzu: UITextField! 7 @IBOutlet weak var kingaku: UITextField! 8 @IBOutlet weak var kekka: UILabel! 9 10 override func viewDidLoad() { 11 super.viewDidLoad() 12 // Do any additional setup after loading the view, typically from a nib. 13 14 self.ninzu.keyboardType = UIKeyboardType.numberPad 15 self.kingaku.keyboardType = UIKeyboardType.numberPad 16 } 17 // ナンバーパッドで入力 18 override func didReceiveMemoryWarning() { 19 super.didReceiveMemoryWarning() 20 // Dispose of any resources that can be recreated. 21 } 22 23 24 @IBAction func keisan(_ sender: UIButton) { 25 26 guard let kingaku = kingaku.text, let ninzu = ninzu.text else { return } 27 28 if kingaku.isEmpty || ninzu.isEmpty { 29 let alertController = UIAlertController(title: "エラー", message: "合計金額又は、人数が未入力です。", preferredStyle: .alert) 30 //追加するアクションの設定 31 let ryoukaiAction = UIAlertAction(title: "了解", style: .default, handler: nil) 32 //設定したアラートアクションをUIAlertControllerに追加する 33 alertController.addAction(ryoukaiAction) 34 //アラートを表示 35 present(alertController, animated: true, completion: nil) 36 } 37 38 else { 39 40 guard let kingakuInt = Int(kingaku), let ninzuInt = Int(ninzu) else{ 41 // Int型に変更できない文字が入力された場合 42 return 43 } 44 45 guard kingakuInt > 100, ninzuInt > 1 else{ 46 // 金額100以下、人数に0以下が入力された場合 47 return 48 } 49 50 51 let intKekka = kingakuInt / ninzuInt 52 var result = 0 53 if kingakuInt % ninzuInt == 0 { 54 result = intKekka 55 } else { 56 // 100単位で切り上げ 57 result = Int(ceil(Double(intKekka) / 100) * 100) 58 } 59 print("(result)円") 60 } 61 62 } 63 64} 65 66
試したこと
初学者でググったのですが、
自分の知識では対応できず、
こちらで質問させて頂いております。
補足情報(FW/ツールのバージョンなど)
最新のソースコード
swift
1 2import UIKit 3 4class ViewController: UIViewController { 5 6 @IBOutlet weak var ninzu: UITextField! 7 @IBOutlet weak var kingaku: UITextField! 8 @IBOutlet weak var kekka: UILabel! 9 10 override func viewDidLoad() { 11 super.viewDidLoad() 12 // Do any additional setup after loading the view, typically from a nib. 13 14 self.ninzu.keyboardType = UIKeyboardType.numberPad 15 self.kingaku.keyboardType = UIKeyboardType.numberPad 16 } 17 18 override func didReceiveMemoryWarning() { 19 super.didReceiveMemoryWarning() 20 // Dispose of any resources that can be recreated. 21 } 22 23 24 25 @IBAction func keisan(_ sender: UIButton) { 26 27 guard let kingaku = kingaku.text, let ninzu = ninzu.text else { return } 28 29 if kingaku.isEmpty || ninzu.isEmpty { 30 //UIAlertControllerインスタンスの作成 31 let alertController = UIAlertController(title: "エラー", message: "合計金額又は、人数が未入力です。", preferredStyle: .alert) 32 //追加するアクションの設定 33 let ryoukaiAction = UIAlertAction(title: "了解", style: .default, handler: nil) 34 //設定したアラートアクションをUIAlertControllerに追加する 35 alertController.addAction(ryoukaiAction) 36 //アラートを表示 37 present(alertController, animated: true, completion: nil) 38 39 } else { 40 guard let kingakuInt = Int(kingaku), let ninzuInt = Int(ninzu) else{ 41 // Int型に変更できない文字が入力された場合 42 return 43 } 44 45 guard kingakuInt > 100, ninzuInt > 1 else{ 46 // 金額、人数に0以下が入力された場合 47 48 let alertController = UIAlertController(title: "エラー", message: "数字が無効です", preferredStyle: .alert) 49 //追加するアクションの設定 50 let ryoukaiAction = UIAlertAction(title: "了解", style: .default, handler: nil) 51 //設定したアラートアクションをUIAlertControllerに追加する 52 alertController.addAction(ryoukaiAction) 53 //アラートを表示 54 present(alertController, animated: true, completion: nil) 55 56 return 57 } 58 59 60 let intKekka = kingakuInt / ninzuInt 61 var result = 0 62 if kingakuInt % ninzuInt == 0 { 63 result = intKekka 64 } else { 65 // 100単位で切り上げ 66 result = Int(ceil(Double(intKekka) / 100) * 100) 67 } 68 print("(result)円") 69 } 70 71 } 72 @IBAction func reset(_ sender: UIButton) { 73 } 74 ninzu.text = "" 75 kingaku.text = "" 76} 77
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。