我在iOS开发初学者,我一直在使用中实现以下屏幕UICollectionView:斯威夫特3个值传递给控制器上UICollectionViewCell按钮点击
CollectionViewCell文件中的代码是:
import UIKit
class EventCell: UICollectionViewCell{
var classEvent: Event?
@IBOutlet weak var eventTitle: UILabel!
@IBOutlet weak var eventTeams: UILabel!
@IBOutlet weak var eventTime: UILabel!
@IBOutlet weak var eventTeamOneImage: UIImageView!
@IBOutlet weak var eventTeamTwoImage: UIImageView!
@IBOutlet weak var leaderboardButton: UIButton!
var datasourceItem: Any?{
didSet{
guard let event = datasourceItem as? Event else { return }
classEvent = event
eventTitle.text = "Match \(event.matchNo) (\(event.matchStage))"
eventTeams.text = "\(event.teamOne.nameAttr) vs \(event.teamTwo.nameAttr)"
eventTime.text = "\(event.getEventLockTimeAsString())"
eventTeamOneImage.loadImageUsingCache(withUrl: event.teamOne.flagPhoto)
eventTeamTwoImage.loadImageUsingCache(withUrl: event.teamTwo.flagPhoto)
leaderboardButton.addTarget(self, action: #selector(handleLeaderBoardClick), for: .touchUpInside)
}
}
@IBAction func leagueButton(_ sender: Any) {
}
weak var delegate: HomeControllerDelegate?
func handleLeaderBoardClick() {
if let matchId = classEvent?.id {
print(matchId)
delegate?.clickOnLeaderBoard(matchId: matchId)
}
}
}
现在点击排行榜按钮(带有1,2,3的图标)我想打开新的LeaderBoard控制器,并通过matchId这是classEvent.id
如何将值传递给新控制器?什么是最好的方式来做到这一点。
请检查我的答案 –
请参考这两个环节:https://stackoverflow.com/questions/31075116/passing-data-between-two-viewcontrollers-delegate-swift和https://stackoverflow.com/questions/5210535/passing-data-between-view-controllers – Amit