我如何通过Segue中的collectionViewCell和嵌入在TableViewCell中的按钮通过数据传递数据?

时间:2019-06-19 08:25:29

标签: ios swift uitableview uicollectionviewcell

我希望通过嵌入collectionViewCell中嵌入的TableViewCell的segue传递数据; 同样来自嵌入Button的{​​{1}}

这是示例代码:

这是TableViewCell类:

TableViewCell's

这里是class PopularCell: UITableViewCell { @IBOutlet weak var ViewAllButton: UIButton! @IBOutlet weak var PopularEvents: UILabel! @IBOutlet weak var EventCollection: UICollectionView! // EMBEDDED COLLECTIONVIEW var events = [Events]() override func awakeFromNib() { super.awakeFromNib() // EMBEDDED BUTTON ViewAllButton.setIcon(prefixText: "View All ", prefixTextColor: .blue, icon: .typIcons(.chevronRight), iconColor: .blue, postfixText: " ", forState: .normal, iconSize: 24) // EMBEDDED BUTTON EventCollection.delegate = self EventCollection.dataSource = self } extension PopularCell: UICollectionViewDelegate, UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return events.count } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = EventCollection.dequeueReusableCell(withReuseIdentifier: "EventCell", for: indexPath) as! EventCell let event = events[indexPath.row] print("Event Name:\(event.event_name)") cell.event = event return cell } }

ViewController(TableView Delegate & DataSource) class

如何配置功能准备,以便通过“ ViewEvents” “ ViewEventDetails” func numberOfSections(in tableView: UITableView) -> Int { return 1 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return groupedEventArray.count } func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 245 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "PopularCell", for: indexPath) as! PopularCell let (category, events) = groupedEventArray[indexPath.row] cell.ViewAllButton.addTarget(self, action: #selector(VenueViewController.ViewAll(_:)), for: .touchUpInside) cell.PopularEvents.text = category cell.events = events return cell } @objc func ViewAll(_ sender:UIButton!) { self.performSegue(withIdentifier: "ViewEvents", sender: sender) } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if(segue.identifier == "ViewEvents") { let destination = segue.destination as? EventListController destination?.navigationItem.title = "Event Category" } else if(segue.identifier == "ViewEventDetails") { if let collectionCell: EventCell = sender as? EventCell { if let _: UICollectionView = collectionCell.superview as? UICollectionView { let destination = segue.destination as? EventDetailViewController destination?.navigationItem.title = "Event Details" } } } } 传递数据相应的标识符

0 个答案:

没有答案