ios - 如何在自定义类中访问 UIPickerView

标签 ios swift uipickerview

我一直在学习 iOS 开发并遇到了一个问题。 我有一个具有 UIPickerView 的类,如下所示(它一开始是隐藏的)

public class MyController: UIViewController, 
                           UIPickerViewDelegate, 
                           UITableViewDataSource, 
                           UITableViewDelegate {

    @IBOutlet var myPickerView: UIPickerView!
}

我有另一个类,我需要访问这个选择器 View 并在用户开始编辑文本字段(标签 = 2)时使其可见

public class MyClass2: UITableViewCell, 
                       UITextFieldDelegate {

    @IBOutlet vat myTextField: UITextField! {didSet {myTextField.delegate = self } }
public func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
  if (textField.tag == 2) {
    // Somehow access the picker view from the other class and change its property, hidden, to false
  }
 }
}

谢谢。

最佳答案

您正在为 MyClass2 中的 activeViewController 创建实例,

static var activeViewController: UIViewController

当你在你的 MyController 上工作时,设置 activeViewController

MyClass2.activeViewController = self

最后,您将使用 activeViewController 更改 MyController 类中的任何内容,

if let myController = activeViewController as? MyController {
   //Do something with your PickerView
   myController.myPickerView = ...
}

关于ios - 如何在自定义类中访问 UIPickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33467558/

相关文章:

ios - 无法显示右栏按钮 - ios sdk

ios - UIButton `setTitleShadowColor:ForState` 未按预期工作

ios - LLVM 编译汇编文件的操作数中存在意外标记。替代说明?

ios - ARC 静态库兼容性

objective-c - 我在 info.plist 中的 NSAppTransportSecurity 设置不适用于所有定义的域和子域

ios - 如何将2个UIpickerView添加到一个UIview中?

ios - XCode 在尝试使用私有(private) Pod 内定义的协议(protocol)时显示 'Use of undeclared type' (Swift)

ios - 添加 JSON 作为 Assets 并读取它

ios - 如何返回以编程方式创建的 UIPicker 委托(delegate)中选定的值

ios - UIPickerView:有没有办法阻止用户滚动到某一行?