swift - Swift 中带有按钮的 UITableViewCell
问题描述
我有一个带有单元格的 UITableView,每个单元格都有产品信息、产品名称和产品 ID。每个单元格都有一个按钮,可将您带到另一个屏幕,其中包含产品的更多详细信息。我的问题是,当我选择一个单元格时,由于didSelectRowAtIndexPath,我已经获得了属于所选单元格的产品的名称和ID,但是当我触摸单元格内的按钮时,我没有触发didSelectRowAtIndexPath,我不能获取产品的 id,因此我无法转到下一个屏幕并显示与所选产品相关的信息。我能做什么?
解决方案
我会问你哪些有助于解决这个问题的问题是:
您是否使用IBAction
转换作为按钮的动作触发器?
如果是,那么IBAction 将位于UITableViewCell
应该包含名称、id 和产品信息的值的其中。IBOutlet
UILabels
例如:
class SampleCell: UITableViewCell {
@IBOutlet var nameLabel: UILabel!
@IBOutlet var idLabel: UILabel!
@IBOutlet var informationLabel: UILabel!
@IBAction func action(button: UIButton) {
// you can obtain your information once the button is triggered before navigating
let id = self.idLabel.text
let name = self.nameLabel.text
let information = self.informationLabel.text
// navigate to new screen using delegate protocols
}
}
如果您不使用 IBOutlets 和 IBActions 如下,那么我建议您使用它们,并为产品单元格创建一个自定义 TableViewCell。这是访问您的手机信息的最简单方法
推荐阅读
- javascript - 在 Google 表格中使用 MailMerge 的 toLocaleDateString 和 Date.Prototype 出现问题
- reactjs - 面包屑反应代码不起作用,我该如何解决?
- haskell - 如何将 `throwM` 与 `Except` 一起使用?
- bazel - 带有 protobuf / gRPC-gateway / golang 的 bazel - 入门
- angular - 将带有 rxjs 的 Angular 5 模块导入 Angular 8 应用程序
- ios - Firebase Firestore collectionGroup()查询方法无法识别 - swift
- acumatica - 如何在报表设计器中通过 URL 引用外部图像?
- php - MySQL阻止用户从其他用户那里获取代码
- excel - 在单元格中搜索特定文本并从列表中返回匹配的文本
- kotlin - Kotlin 结合使用箭头、lamda、?、. , 然后让。什么意思?