ios - UIPickerView 将数据传递给容器 View

标签 ios swift uipickerview

我查看了 StacksOverflow 上的一些容器 View 问题,但没有人使用选择器 View 将数据传递到容器 View 中的 TableView 单元格。我试过使用:

    func pickerView( _ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "containerSettingsSegue" {
            let destination = segue.destination as! SettingsTableViewController
            destination.delegate = self
            destination.languageDetail.text = myPickerData[row]
        }
    }
}

还有

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "containerSettingsSegue" {
        let destination = segue.destination as! SettingsTableViewController
        destination.delegate = self
    }
}

上面的两个代码都在我的父 View 中。

但是,它不起作用。有什么方法可以做到吗?

最佳答案

感谢@TBlank 的回答https://stackoverflow.com/a/34349405/1142743

因此根据他的回答代码应该如下所示:

SettingsViewController 中声明一个 SettingsTableViewController 的实例,例如:

var childView : SettingsTableViewController?


override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "containerSettingsSegue" {
            childView = segue.destination as? SettingsTableViewController
            childView!.delegate = self
        }


     }


func pickerView( _ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
            childView?.changeLabel(text: myPickerData[row])
    }

现在在 SettingsTableViewController 中声明一个方法,如下所示

func changeLabel(text: String) {
        languageDetail.text = text
    }

关于ios - UIPickerView 将数据传递给容器 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56523268/

相关文章:

swift - 如何在 Swift 中为多个 UIpickerview 设置数据?

ios - [UILabel numberOfComponentsInPickerView :]: unrecognized selector sent to instance . ..]

ios - 限制 UIPinchGestureRecognizer 只能使用两个手指

arrays - Swift 数组作为 C 函数缓冲区

ios - UIScrollViewDelegate 未在自定义类中调用

ios - 如何在 swift 中使用 alamofire 将任何文件上传到服务器

ios - UIPicker 作为 UITextfield 键盘的输入

ios - 用 anchor 在uiwebview中加载本地html5

ios - 增加所有文本字段上的文本大小

ios - 使用 Firebase 保持用户登录(自定义 iOS 身份验证)