Advertisement
Guest User

Untitled

a guest
Dec 7th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.21 KB | None | 0 0
  1. // Reducers
  2.  
  3. func incReducer(state: ViewController.State) -> ViewController.State {
  4.     var state = state
  5.     state.number += 1
  6.     return state
  7. }
  8.  
  9. func decReducer(state: ViewController.State) -> ViewController.State {
  10.     var state = state
  11.     state.number -= 1
  12.     return state
  13. }
  14.  
  15. // Initialization
  16.  
  17. let vc = ViewController(nibName: "ViewController", bundle: nil)
  18. vc.incHandler = incReducer
  19. vc.decHandler = decReducer
  20.  
  21. // VC
  22. class ViewController: UIViewController {
  23.  
  24.     struct State {
  25.         var number: Int
  26.     }
  27.    
  28.     var state = State(number: 0)
  29.    
  30.     @IBOutlet weak var numberLabel: UILabel!
  31.     @IBOutlet weak var incButton: UIButton!
  32.     @IBOutlet weak var decButton: UIButton!
  33.    
  34.     var incHandler: ((_ state: State) -> (State))!
  35.     var decHandler: ((_ state: State) -> (State))!
  36.    
  37.     override func viewDidLoad() {
  38.         super.viewDidLoad()
  39.         render()
  40.     }
  41.    
  42.     @IBAction func inc(_ sender: UIButton) {
  43.         state = incHandler(state)
  44.         render()
  45.     }
  46.    
  47.     @IBAction func dec(_ sender: UIButton) {
  48.         state = decHandler(state)
  49.         render()
  50.     }
  51.    
  52.     func render() {
  53.         numberLabel.text = String(state.number)
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement