< How to recommend another app using appStoreOverlay() | How to push a new view onto a NavigationView > |
Updated for Xcode 12.0
New in iOS 14
SwiftUI gives us a dedicated view for showing popup menus from buttons, helpfully called Menu
. This can be created from a simple string or using a custom view, but either way you get to send in a variety of buttons to control what you want to appear in the menu.
For example, we could create a simple button with several options like this:
Menu("Options") {
Button("Order Now", action: placeOrder)
Button("Adjust Order", action: adjustOrder)
Button("Cancel", action: cancel)
}
You can also place menus inside menus if you want, which will cause iOS to reveal the second menu when the first option is tapped:
Menu("Options") {
Button("Order Now", action: placeOrder)
Button("Adjust Order", action: adjustOrder)
Menu("Advanced") {
Button("Rename", action: rename)
Button("Delay", action: delay)
}
Button("Cancel", action: cancel)
}
If you wanted a customized label using some text and an icon, you could use this:
Menu {
Button("Order Now", action: placeOrder)
Button("Adjust Order", action: adjustOrder)
} label: {
Label("Options", systemImage: "paperplane")
}
SPONSORED From January 26th to 31st you can join a FREE crash course for iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a senior developer!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.