Skip to content

Instantly share code, notes, and snippets.

@FranDepascuali
Last active January 26, 2016 18:41
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 FranDepascuali/a2d0da330a89f51c1735 to your computer and use it in GitHub Desktop.
Save FranDepascuali/a2d0da330a89f51c1735 to your computer and use it in GitHub Desktop.
extension ViewModelBindable where Self: AnyObject {
public var viewModel: ViewModel? {
get {
return getAssociatedObject(self, key: &AssociatedKey)
}
set(newViewModel) {
if let viewModel = newViewModel {
setAssociatedObject(self, value: viewModel, key:
&AssociatedKey, policy:
objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
if shouldBindViewModel() {
registerBinding(viewModel)
}
}
}
}
private func registerUnbinding(viewModel: ViewModel) {
unbindViewModel(viewModel)
}
private func registerBinding(viewModel: ViewModel) {
bindViewModel(viewModel)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment