Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Reducers
- func incReducer(state: ViewController.State) -> ViewController.State {
- var state = state
- state.number += 1
- return state
- }
- func decReducer(state: ViewController.State) -> ViewController.State {
- var state = state
- state.number -= 1
- return state
- }
- // Initialization
- let vc = ViewController(nibName: "ViewController", bundle: nil)
- vc.incHandler = incReducer
- vc.decHandler = decReducer
- // VC
- class ViewController: UIViewController {
- struct State {
- var number: Int
- }
- var state = State(number: 0)
- @IBOutlet weak var numberLabel: UILabel!
- @IBOutlet weak var incButton: UIButton!
- @IBOutlet weak var decButton: UIButton!
- var incHandler: ((_ state: State) -> (State))!
- var decHandler: ((_ state: State) -> (State))!
- override func viewDidLoad() {
- super.viewDidLoad()
- render()
- }
- @IBAction func inc(_ sender: UIButton) {
- state = incHandler(state)
- render()
- }
- @IBAction func dec(_ sender: UIButton) {
- state = decHandler(state)
- render()
- }
- func render() {
- numberLabel.text = String(state.number)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement