Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class NavBarItem {
- typealias Callback = (() -> ())
- var title : String
- var selected: Bool
- var callback: Callback
- init(title: String, selected: Bool, callback: @escaping Callback) {
- self.title = title
- self.selected = selected
- self.callback = callback
- }
- }
- class NavBarButton : UIButton {
- var item : NavBarItem?
- }
- class NavBarView : UIView {
- var items = [NavBarItem]()
- func add(item: NavBarItem) {
- items.append(item)
- }
- override func layoutSubviews() {
- super.layoutSubviews()
- for item in items {
- // setup the buttons properly
- let button = NavBarButton(frame: CGRect.zero)
- button.item = item
- button.addTarget(self, action: #selector(buttonTapped(sender:)), for: UIControlEvents.touchUpInside)
- }
- }
- func buttonTapped(sender: NavBarButton) {
- sender.item?.callback()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement