gpt4 book ai didi

ios - 每个 TableViewCell 的 IBAction 不返回唯一的 NSIndexPath

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

当我点击他们的用户名时,我试图跳转到用户的个人资料屏幕(见下面的屏幕截图)。我有一个 UITableViewController 和一个 UITableViewCell 的提要,每个提要都有一个 usernameLabel (UILabel) 和一个透明的 userNameButton ( UIButton) 直接放置在 usernameLabel 的顶部,以便 UILabel 可见。该按钮本质上就像一个“点击区域”。我知道我应该只删除 UILabel 并更新 UIButton 的文本以说出用户名,但这是另一回事。

这是我的 IBAction(Segue 代码还没有在这里):

    @IBAction func usernameButtonPressed(sender: UIButton) {

let indexPath = NSIndexPath(forRow: sender.tag, inSection: 0)
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! DrawingTableViewCell
print("index path is: \(indexPath)")

let cellsUsernameString = cell.usernameLabel.text

print("just tapped the Feed username button for \(cellsUsernameString!)")

}

几个问题:

  1. 我的 usernameButtonPressed 在我的 UITableViewController 中。我应该把这个 IBAction 放在 UITableViewCell 的类中吗?或者这里还好吗?
  2. 我打印的 indexPath 对于每个表格单元格都完全相同。为什么是这样?我的 sender.tag 不会更新为不同的 int 值吗?
  3. 我认为由于 #2,每个表格单元格都返回了不正确的用户名字符串。

总的来说,我此操作的目标是从特定用户获取每个相应 tableview 单元格的用户(或对象)信息,以便我可以正确地转到该特定用户配置文件。显然,我将需要更多代码来执行此操作,但这是我尝试此操作的开始,此时我纯粹是在尝试为每个单元格获取正确的用户名。

这是 TableView 的屏幕截图,试图提供更多上下文:

enter image description here

最佳答案

发件人标签对于所有 UITableViewCell 都是相同的,因为您正在出列相同的自定义单元格。

您应该子类化 UITableViewCell 并将您的 IBAction 方法移动到该子类中。您还需要将 Storyboard 中的单元格类更改为新的子类。

您可以在 UItableViewCell 子类中声明一个与您在数据源中具有相同类型的属性,并在 cellForRowAtIndexPath 方法中分配该属性。

然后在您的自定义单元格中的 IBAction 中,您将转到用户的个人资料屏幕,并在您的自定义单元格中传递对象或标签文本。然后,您将在 prepareForSegue 中获取目标 View Controller 并将此属性分配给它。

关于ios - 每个 TableViewCell 的 IBAction 不返回唯一的 NSIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35394934/

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