Skip to content

Instantly share code, notes, and snippets.

View FranDepascuali's full-sized avatar

Depa FranDepascuali

View GitHub Profile
extension ViewModelBindable where Self: AnyObject {
public var viewModel: ViewModel? {
// store view model
}
}
public protocol ViewModelBindable: class {
typealias ViewModel
var viewModel: ViewModel? { get set }
func bindViewModel(viewModel: ViewModel)
func unbindViewModel(viewModel: ViewModel)
public class MyViewController: UIViewController {
var viewModel: MyViewModel? {
willSet(maybeViewModel) {
if let _ = self.viewModel {
unbindViewModel()
}
}
didSet {
if isViewLoaded(), let viewModel = self.viewModel {