如何根据步进值而不是 swift 3 中单元格的物理选择来选择表格视图的单元格?

Posted

技术标签:

【中文标题】如何根据步进值而不是 swift 3 中单元格的物理选择来选择表格视图的单元格?【英文标题】:How do I make my table view's cell selection based on a stepper value, not the physical selection of the cell in swift 3? 【发布时间】:2017-04-19 16:53:33 【问题描述】:

我想将数据从表视图传输到另一个视图控制器。我现在有这个转移是基于一个 segue 发生的。目前,我的代码获取所选单元格的信息并将其传递到下一个视图控制器的标签中,因为它应该通过函数 tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)。我现在希望根据连接到单元中步进器的标签中读取的值来识别要发送的内容,而不是单元的物理选择。换句话说,我如何将单元格的选择等同于在单元格内的标签内具有大于 0 的值。

【问题讨论】:

【参考方案1】:

如果我正确理解您的问题,您是否希望根据步进器的值来控制传递的数据,无论选择哪个 tableViewCell?

如果在你的 segue 中是这样:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
    if (segue.identifer == "(your segue ID)") 
        let vc = segue.destination
        vc.dataSource = tableViewDataSource[stepperValue]
    

或:

let vc = yourDestinationViewController
vc.dataSource = tableViewDataSource[stepperValue]
self.present(vc, animated: true)

请记住,这是伪代码,因为我不知道您使用的是哪种对象,但我希望这有助于为您指明正确的方向。如果您将步进值作为字符串获取,则需要将其转换为 Int。

【讨论】:

你说的 stepperValue 是什么?这是步进器连接到的标签的名称还是其他名称。请解释一下。 这完全取决于您,您可以从标签或步进器中提取该值。我个人会把它从步进器本身拉出来,直接找到价值的来源,而不是“拐弯抹角”:) 那么你如何调用步进器的值呢?当我使用您的“stepperValue”时,会出现使用未解析标识符的错误。我必须将其声明为某事吗?如果我这样做,我应该在哪里这样做?我在哪里声明步进器或在 segue 函数或其他地方?请帮忙 所以我尝试将“stepperValue”设为变量并将其定义为 sender.value。弹出一个新错误并说“UIViewController”没有成员“dataSource”。有关如何解决它的任何建议? 此伪代码中的 dataSource 将是您用于填充 tableView 的字典或数组。因此,只需使用您正在使用的任何变量在 func dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell 中创建 tableViewCell 的视图

以上是关于如何根据步进值而不是 swift 3 中单元格的物理选择来选择表格视图的单元格?的主要内容,如果未能解决你的问题,请参考以下文章

如何将步进值传递给 ViewController?

根据内容动态调整tableview单元格的高度 - iOS Swift

如何在swift ios中调整集合视图单元格的高度?

如何在swift 3中删除tableview中特定单元格的按钮

如何以编程方式将不同单元格的不同图像添加到 tableView (Swift 3)

如何从位于集合视图单元格内的步进器中获取选定的 IndexPath?