Skip to content

Instantly share code, notes, and snippets.

@keisei1092
Last active December 19, 2016 07:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save keisei1092/d2afae652c433c46bc5460141442d5aa to your computer and use it in GitHub Desktop.
Save keisei1092/d2afae652c433c46bc5460141442d5aa to your computer and use it in GitHub Desktop.
RxSwift最小実装
//
// ViewController.swift
// rxpractive
//
// Created by SaitoKeisei on 2016/12/19.
// Copyright © 2016 keisei_1092. All rights reserved.
//
import UIKit
import RxSwift
import RxCocoa
import RxDataSources
struct Person {
let name: String
init(name: String) {
self.name = name
}
}
struct ViewModel {
let data = Observable.just([
Person(name: "Ben Sandofsky"),
Person(name: "Carla White"),
Person(name: "Jaimee Newberry")
])
}
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
let viewModel = ViewModel()
let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
viewModel.data
.bindTo(tableView.rx.items(cellIdentifier: "cell")) { _, speaker, cell in
cell.textLabel?.text = speaker.name
}
.addDisposableTo(disposeBag)
tableView.rx.modelSelected(Person.self)
.subscribe(onNext: { speaker in
print("You selected \(speaker)")
})
.addDisposableTo(disposeBag)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment