Вычисленные свойства действуют как функция. Возможно, было бы полезно убедиться, что результат такого свойства всегда соответствует текущему состоянию его зависимостей.
func createPicker() -> UIPickerView {
let customPicker = UIPickerView(frame: CGRect(x: 0, y: 0, width: 400, height: 216))
customPicker.backgroundColor = .white
return customPicker
}
В вашем случае такое вычисляемое свойство ни от чего не зависит и всегда возвращает новый экземпляр UIPickerView всякий раз, когда вы ссылаетесь proxyPeoplePicker
.
Чего вы действительно хотите добиться, так это хранимого свойства, которое инициализируется контроллером представления. Он вычисляется только один раз и остается постоянным до тех пор, пока вы его не перезапишите. Вот что вам нужно сделать, чтобы иметь 5 экземпляров pickerView для работы:
class FirstVC : UIViewController {
private var pickerView1: UIPickerView?
private var pickerView2: UIPickerView?
private var pickerView3: UIPickerView?
private var pickerView4: UIPickerView?
private var pickerView5: UIPickerView?
override func viewDidLoad() {
pickerView1 = createPicker()
pickerView2 = createPicker()
pickerView3 = createPicker()
pickerView4 = createPicker()
pickerView5 = createPicker()
// now you can operate with your picker view
pickerView1?.backgroundColor = .black
}
}