无法将数据从UIPickerView传递到CustomTableViewCell

时间:2019-04-13 20:02:56

标签: swift uitableview uitextfield

我正在尝试一些相对简单的方法,但是我无法找到解决方法。我有一个注册视图控制器,其中嵌入了UITableView。 TableView的CustomsCells嵌入了三种自定义单元格。最后一个是使用UITextfield进行自定义的,并且当被选中时假定是从底部触发PickerView,以便用户可以在此处选择所需的首选项。除了一件小事情,其他所有东西都工作正常。当选择任何行时,应将文本作为文本字段的输入,但这不会发生。

我已经在互联网上尝试了几段代码,但是其中大多数是关于文本字段在同一ViewController中的,因为在这种情况下,UITextFieldDelegate字段连接到de CustomTableViewCell类。我尝试创建此CustomTableViewCell的对象,然后点击textfield变量并尝试更改text属性,但是结果只是空白。

import UIKit

class RegisterViewController: UIViewController {

    let registrationCell = RegisterViewCell()
    let personalCell = PersonalViewCell()
    var selectedRow : String = ""

    let registerArray = ["UserName"]
    let passwordArray = ["Password", "Confirm Password"]
    let personalArray = ["I am"] //Identity of the user, female or male
    let personalPickerArray = ["Famale", "Male"]
    @IBOutlet weak var registerTableView: UITableView!
    @IBOutlet weak var personalPickerView: UIPickerView!

    override func viewDidLoad() {
        super.viewDidLoad()

        personalPickerView.isHidden = true
        personalCell.personalTextField?.inputView = personalPickerView

    } 

我已经为TableView和Picker View创建了扩展,我认为问题出在这里,但是我不确定:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let personalCell = tableView.dequeueReusableCell(withIdentifier: "PersonalViewCell", for: indexPath) as! PersonalViewCell
            personalCell.personalLabel?.text = personalArray[0]
            personalCell.personalTextField.text = selectedRow
            personalCell.accessoryType = .disclosureIndicator
            return personalCell
        }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        if indexPath.row == 3 {
            personalPickerView.isHidden = false
        }
    }

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

        let row = personalPickerArray[row]
        selectedRow = row
        personalPickerView.isHidden = true
        print(selectedRow)
    }

自定义单元格类文件

import UIKit

class PersonalViewCell: UITableViewCell {


    @IBOutlet weak var personalLabel: UILabel!
    @IBOutlet weak var personalTextField: UITextField!


    override func awakeFromNib() {
        super.awakeFromNib()
    }
}

现在,当选择一行并希望在UITextField中有一个输入要嵌入到“自定义单元格”“个人视图单元”中时,但当选择任何行时,UITextField只是空白

1 个答案:

答案 0 :(得分:0)

void GraphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
  // ...
  QPointF point = mouseEvent->scenePos();
  qDebug() << point.x() << " " << point.y() << " ";
  // ...
  QGraphicsScene::mouseMoveEvent(mouseEvent);
}