import UIKit
class YourViewController: UIViewController {
@IBOutlet weak var yourButton: UIButton!
let buttonMenuItems = ["Spring", "Summer", "Autumn", "Winter"]
override func viewDidLoad() {
super.viewDidLoad()
yourButton.menu = createAttributeMenu(title: "Season", buttonMenuItems: buttonMenuItems) { selectedOption in
print("Selected Option: \(selectedOption)")
}
yourButton.showsMenuAsPrimaryAction = true
}
}
extension UIViewController {
func createAttributeMenu(title: String, buttonMenuItems: [String], handler: @escaping (String) -> Void) -> UIMenu {
var menuActions: [UIAction] = []
for attribute in buttonMenuItems {
let item = UIAction(title: attribute) { action in
handler(action.title)
}
menuActions.append(item)
}
return UIMenu(title: title, children: menuActions)
}
}