Skip to content

Instantly share code, notes, and snippets.

@gaussbeam
Last active April 11, 2023 03:52
Show Gist options
  • Save gaussbeam/0456356347b427026e960903822617fd to your computer and use it in GitHub Desktop.
Save gaussbeam/0456356347b427026e960903822617fd to your computer and use it in GitHub Desktop.
import UIKit
struct MenuViewData {
let title: String
let actionViewDataList: [ActionViewData]
init?(_ actionViewDataList: [ActionViewData], title: String = "") {
guard !actionViewDataList.isEmpty else { return nil }
self.actionViewDataList = actionViewDataList
self.title = title
}
}
// MARK: - Convert into UIMenu
extension MenuViewData {
func toUIMenu() -> UIMenu {
let actions = actionViewDataList.map { $0.toUIAction() }
return UIMenu(title: title, options: [], children: actions)
}
}
// Entire codes are in https://github.com/gaussbeam/menu-in-viper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment