숙제는 창의력을 보신다곤 했지만 일단 난 코드를 먼저 써보고 싶었기 때문에 그냥 주신 예시대로 간단하게만 만들어 보았다.
[ 메뉴 수량을 체크하고 '주문하기' 버튼을 누르면 몇 잔인지와 총 금액이 나오는 앱 ]

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if var controller = segue.destination as? coffeeOutputViewController {
controller.americano = Int(americanoStepper.value)
controller.latte = Int(latteStepper.value)
controller.iceTea = Int(iceTeaStepper.value)
}
}
✏️ if var ??? as ???
segue의 destination은 살펴보면 UIViewController로 되어있음. segue.destination이 coffeeOutputViewController라면? 이라는 뜻으로 이해.
@IBAction func americanoTextEditingChanged(_ sender: Any) {
var text = americanoTextField.text ?? ""
americanoStepper.value = Double(text) ?? 0
}
@IBAction func americanoValueChanged(_ sender: Any) {
var value = americanoStepper.value
americanoTextField.text = String(Int(value))
}

var americano: Int = 0
var latte: Int = 0
var iceTea: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
payButton.layer.cornerRadius = 20
coffeeResultLabel.text = "총 \(calculateCoffee())잔,\n결제하실 금액은\n\(numberFormatter(number: calculatePrice()))원 입니다."
}
func calculateCoffee() -> Int {
return americano + latte + iceTea
}
func calculatePrice() -> Int {
var americanoTotal = 2000 * americano
var latteTotal = 3000 * latte
var iceTeaTotal = 1000 * iceTea
return americanoTotal + latteTotal + iceTeaTotal
}
여기까지 만들고 나니 결제금액에 콤마(,)가 없는 상태로 표시 되는게 마음에 들지 않아서 찾아보다가 내게 필요한 코드를 함수로 만들어 놓은 걸 찾았다.
func numberFormatter(number: Int) -> String {
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
return numberFormatter.string(from: NSNumber(value: number))!
}
// 출처 : http://yoonbumtae.com/?p=3394
여기까지 찾고는 어떻게 적용해야 할지 몰라서 한참 헤매다가 어찌저찌 적용하긴 했다. 너무 간단하게 변경한 부분이라 사실 이게 맞는지는 모른다.
func numberFormatter(number: Int) -> String {
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
return numberFormatter.string(from: NSNumber(value: calculatePrice()))!
}