I am trying to write a setter method for UIPickerView which will be created from my IBOutLet. In Objective C it was pretty straight forward but in Swift it has changed a bit. The setter method never gets executed.
My Current implementation in swift:
class PickerController: NSObject, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet var pickerView: UIPickerView!
var _pickerView: UIPickerView! {
get {
return self._pickerView
}
set {
self.pickerView = _pickerView
self.pickerView.delegate = self
self.pickerView.dataSource = self
self.pickerView.reloadAllComponents()
}
}
But if I do in Objective C following method can be declared on the outlet.
- (void)setPickerView:(UIPickerView *)pickerView {
_pickerView = pickerView;
_pickerView.delegate = self;
_pickerView.dataSource = self;
[_pickerView reloadAllComponents];
}
How can I achieve the setter method in Swift ?
Try something like this:
var pickerView: UIPickerView! {
didSet {
self.pickerView.delegate = self
self.pickerView.dataSource = self
self.pickerView.reloadAllComponents()
}
}