如何在UIButton上传递值单击以在collectionViewCell内部委托?

时间:2017-02-24 20:09:22

标签: ios swift

我正在学习最近几天的iOS编程,所以我是这个技术的新手。我正在构建一个简单的应用程序,我在其中使用了包含EventCell的集合视图。每个EventCell都有一个UIButton,EventCell有uniq值(来自JOSN API响应的ID)。我需要传递该值来委托调用新的ViewController。我已经设置了正确工作的委托方法,只是找到了如何在按钮点击上传递值的解决方案

PS:我没有使用故事板

>>> A = "A00000XY"
>>> print increment(A)
"A00000XY"
>>> print increment(A)
"A00001XY"
>>> print increment(A)
"A00002XY"
...
>>> print increment(A)
"A00009XY"
>>> print increment(A)
"A0000AXY"
>>> print increment(A)
"A0000BXY"
...
>>> print increment(A)
"A0000YXY"
>>> print increment(A)
"A0000ZXY"
>>> print increment(A)
"A00010XY"
>>> print increment(A)
"A00011XY"
...
>>> print increment(A)
"ZZZZZZXY"

3 个答案:

答案 0 :(得分:0)

如果您需要将该ID值传递给委托对象(例如您的ViewController),那么您需要修改clickOnLeaderboard协议中的HomeControllerDelegate函数。

修改它并将您的EventCell ID作为附加参数传递给它。

delegate?.clickOnLeaderBoard(cellID)

另外,不要忘记在视图控制器类中更新函数签名。

答案 1 :(得分:0)

cell.yourButton.tag = indexPath.row cell.yourButton.addTarget(self, action: #selector(buttonClicked(sender:)), for: .touchUpInside) 重载

添加:

buttonClicked(sender:)

你的UIViewController应该有buttonClicked(sender:){ tag = sender.tag // you can use this tag to change your view controller }

RealmController.with()

答案 2 :(得分:-1)

更改您的功能以包含参数:

func handleLeaderBoardClick(_ sender: UIButton) {
    // need to get uniq value and pass here....
    delegate?.clickOnLeaderBoard()
}

更新选择器:

leaderboardBtn.addTarget(self, action: #selector(handleLeaderBoardClick(_:)), for: .touchUpInside)

现在,您可以在senderleaderboardButton之间进行比较,看看它们是否相同。