我有UITableViewController
个自定义UITableViewCells
,其中包含UILabel
和UIButton
。
问题是,当按下按钮时,最初设置为0的UILabel
不会改变,这会改变数组中的特定值。当我使用println()
时,实际数组已更改,但UILabel
尚未更改。
以下是我UITableViewController
的代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let groupChatCell = tableView.dequeueReusableCellWithIdentifier("groupChatCell", forIndexPath: indexPath) as textCell
groupChatCell.voteScoreLabel.text="\(groupVote[indexPath.row])"
groupChatCell.voteScoreLabel.tag=indexPath.row
return groupChatCell
}
voteScoreLabel
是我要从数组中更新的UILabel
。
groupVote
是array
,用于填充带有分数的标签。我将UILabel
标记设置为等于其索引路径,以便我可以在需要选择数组的特定值时引用它。
以下内容来自我的自定义UITableViewCellController
:
@IBAction func upVoteButtonPressed(sender: AnyObject) {
groupVote[voteScoreLabel.tag]=groupVote[voteScoreLabel.tag]+1
}
我在这里做错了什么,以便在数组中相应的值发生变化时我可以进行UILabel
更改。
答案 0 :(得分:0)
单击按钮时需要重新加载tableView数据。 reloadData()函数再次调用每个tableView委托/数据源方法,并重新加载整个控制器,如果它的UITableViewController或整个tableView,如果它的视图添加到另一个控制器
您的代码应如下所示:
@IBAction func upVoteButtonPressed(sender: AnyObject) {
groupVote[voteScoreLabel.tag]=groupVote[voteScoreLabel.tag]+1
instance_of_your_tableView.reloadData()
// If this is the name of method in swift //
}
此致