Updated for Xcode 14.2
Okay, let’s fix up that order total so that it’s accurate. We’re going to add a totalPrice
computed property to our type, which will calculate the value of their tip, add it to the total for their order, and return that amount.
Please add this to CheckoutView
now:
var totalPrice: String {
let total = Double(order.total)
let tipValue = total / 100 * Double(tipAmount)
return (total + tipValue).formatted(.currency(code: "USD"))
}
Now, remember that SwiftUI will re-invoke our body
property whenever any of our @State
properties change. As a result, we can use that computed property right inside our layout, and it will automatically change as the segmented control changes:
Section("Total: \(totalPrice)") {
If you try that out you should see it all works great – the total price reflects the items we’re ordering, plus any tip the user selected.
SPONSORED Play is the first native iOS design tool created for designers and engineers. You can install Play for iOS and iPad today and sign up to check out the Beta of our macOS app with SwiftUI code export. We're also hiring engineers!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.