从XIB细胞将数据传递到的viewController

问题描述 投票:0回答:1

我想提出一个选择题测试,我不知道如何让用户选择,所以我能级测试的答案。

我在那有一个表视图故事板视图控制器(连接到导航控制器),我用一个XIB文件为我的自定义单元格。

这些是我的两个类:

视图控制器类 - 持有表视图 - 是我的数据源 - 将数据加载到厦门国际银行我表视图细胞 - 导航栏上有一个名为“级”按钮

表视图细胞类 - 具有显示一个问题的标签出口 - 具有三个按钮的插座显示答案选项 - 具有抽头时,改变按钮的背景颜色的动作

加载的问题和答案选项数据到厦门国际银行细胞正常工作。

当用户点击“级别”按钮,我希望存储用户在一个数组拍了拍所有按钮的titleLabel文本,但我不知道如何做到这一点。

ios swift tableview xib
1个回答
1
投票

对于这样的事情的典型模式是定义,将收到来自您UITableViewCells事件,如按钮的抽头的委托协议。委托可以发送沿着细胞和按钮在电池被窃听,所以你的TableView或视图控制器可以更新哪个按钮被掐视图全视图模式。

class AnswerCellView: UITableViewCell {
    // ...

    weak var delegate: AnswerCellViewDelegate?

    // The methods here linked to your outlets should call the answerCellClicked on the delegate

    // ...
}

protocol AnswerCellViewDelegate {
    func answerCellClicked(answerCell: AnswerCellView, answerButton: UIButton)
}

// ...

class AnswerCellTableView: UITableViewDataSource, AnswerCellViewDelegate {
    // ...

    func answerCellClicked(answerCell: AnswerCellView, answer: UIButton) {
        // do the work to keep track of which buttons have been clicked
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        var answerCell: AnswerCellView
        // construct your AnswerCellView, setting the delegate property on your cell to self
        // ...
        answerCell.delegate = self
        // ...
    }

    // ...
}

© www.soinside.com 2019 - 2024. All rights reserved.