如何使用UIPickerView

时间:2019-06-24 14:55:09

标签: ios swift

我想使用UIPickerView更改另一个ViewController上的标签。这意味着在另一堂课。我该怎么做?代码看起来如何?我认为我的问题很容易解决,但是对于这种编程语言我还是很陌生。

我已经尝试了几种方法,但是没有任何效果。

1 个答案:

答案 0 :(得分:0)

您可以使用代理或通知。 对于此类情况,首选委托。这是一个例子:

这是保存选择器的类(假设您有一个表示选择器内容的values数组):

protocol PickerControllerDelegate: class {
   func pickerControllerDidChangeValue(value: String?)
}

class PickerViewController: UIViewController, UIPickerViewDelegate {
   var values: [String] = []
   weak var delegate: PickerControllerDelegate?

   func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
          let value = self.values[row] as? String
          self.delegate.pickerControllerDidChangeValue(value: value)
       }
}

这是另一个ViewController,用于监听选择器的更改:

class OtherViewController: UIViewController, PickerControllerDelegate {

   override viewDidLoad() {
      super.viewDidLoad()
      let instanceOfPickerViewContoller = PickerViewController()
      instanceOfPickerViewContoller.delegate = self
   }

   // MARK - PickerViewController Delegate
   func pickerControllerDidChangeValue(value: String?) {
       // Now you have the new value!
   }
}