Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1.  
  2.  
  3. class NavBarItem {
  4. typealias Callback = (() -> ())
  5.  
  6. var title : String
  7. var selected: Bool
  8. var callback: Callback
  9.  
  10. init(title: String, selected: Bool, callback: @escaping Callback) {
  11. self.title = title
  12. self.selected = selected
  13. self.callback = callback
  14. }
  15. }
  16.  
  17. class NavBarButton : UIButton {
  18. var item : NavBarItem?
  19. }
  20.  
  21. class NavBarView : UIView {
  22. var items = [NavBarItem]()
  23. func add(item: NavBarItem) {
  24. items.append(item)
  25. }
  26.  
  27. override func layoutSubviews() {
  28. super.layoutSubviews()
  29. for item in items {
  30. // setup the buttons properly
  31. let button = NavBarButton(frame: CGRect.zero)
  32. button.item = item
  33. button.addTarget(self, action: #selector(buttonTapped(sender:)), for: UIControlEvents.touchUpInside)
  34. }
  35. }
  36.  
  37. func buttonTapped(sender: NavBarButton) {
  38. sender.item?.callback()
  39. }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement