gpt4 book ai didi

ios - 当VC从另一个VC返回时,如何清除UITableVIew中的所有检查?

转载 作者:行者123 更新时间:2023-11-30 12:51:25 24 4
gpt4 key购买 nike

我有一个场景,其中 UITableView 显示联赛中的球员列表。

用户选择两个玩家来比较结果。当用户选择玩家时,会显示一个检查。一旦用户选择了两个用户,就会出现一个新的 VC,显示两个玩家的结果。

在此 ResultsVC 上,我有一个后退按钮,可以关闭 ResultsVC,并且 View 将返回到原始 VC。

返回此原始 VC 后,选择查看的球员旁边的检查仍然可见。

当此 VC 返回时,如何重置所有检查?

这是我使用 TableView 的原始 VC 代码:

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {



let cell = tableView.dequeueReusableCell(withIdentifier: "PersonalStatsTableViewCell", for: indexPath as IndexPath) as! PersonalStatsTableViewCell

cell.textLabel?.text = self.communityPlayers[indexPath.row]
cell.textLabel?.font = UIFont(name: "Avenir", size: 12)
cell.textLabel?.textColor = UIColor.white // set to any colour
cell.layer.backgroundColor = UIColor.clear.cgColor

cell.personalStatsInfoButton.tag = indexPath.row
cell.personalStatsInfoButton.addTarget(self, action: #selector(infoClicked), for: UIControlEvents.touchUpInside)

cell.selectedBackgroundView?.backgroundColor = UIColor.red

return cell

}

func infoClicked(sender:UIButton){
let buttonRow = sender.tag
self.friendId = self.communityPlayerIds[buttonRow]
self.personalSelf = false
self.friendName = self.communityPlayers[buttonRow]
self.performSegue(withIdentifier: "personalStatsSegue", sender: self)
}

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

self.selectedCellTitle = self.communityPlayers[indexPath.row]
cellId = indexPath.row
//print (self.communityPlayerIds[indexPath.row])

if let cell = tableView.cellForRow(at: indexPath) {
if cell.isSelected {
cell.accessoryType = .checkmark
}
}

if let sr = tableView.indexPathsForSelectedRows {
print("didSelectRowAtIndexPath selected rows:\(sr)")
if sr.count == 2{
let tempId_1 = sr[0][1]
let tempId_2 = sr[1][1]
self.tempCount = 2
self.tempPlayerId_1 = self.communityPlayerIds[tempId_1]
self.tempPlayerId_2 = self.communityPlayerIds[tempId_2]

print ("you have selected player I'ds: ", self.tempPlayerId_1!, "and ", self.tempPlayerId_2!)
self.performSegue(withIdentifier: "showHeadToHeadSegue", sender: self)
}


}


}

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

if let cell = tableView.cellForRow(at: indexPath as IndexPath) {
cell.accessoryType = .none
}

if let sr = tableView.indexPathsForSelectedRows {
print("didDeselectRowAtIndexPath selected rows:\(sr)")

}


}
}

我已经阅读了该主题的相关内容,但似乎没有任何效果。

最佳答案

怀疑它。

我添加了

cell.accessoryType = .none

进入func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 函数

然后,当返回 View 时,所有检查都会被删除。

关于ios - 当VC从另一个VC返回时,如何清除UITableVIew中的所有检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40895898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com