简体   繁体   English

Swift如何从CollectionviewCell中筛选indexPath值?

[英]Swift How to segue indexPath value from CollectionviewCell?

I want to be able to reload the value in my DetailViewController. 我希望能够在我的DetailViewController.重新加载值DetailViewController. How do I segue the selected indexPath so I can call the value in the next view controller? 如何选择选定的indexPath,以便可以在下一个视图控制器中调用该值?

In my didSelectItemAt I have: 在我的didSelectItemAt我有:

let monsters: Monsters!

let mons: [Monsters] = Data().mons
monsters = mons[indexPath.row] 

self.performSegue(withIdentifier: "DetailVC", sender: monsters)

You could create a monster property in DetailViewController , and then assign it when you call prepare(for segue:) 您可以在DetailViewController创建一个monster属性,然后在调用prepare(for segue:)时进行分配。

// This would be a property at the top of DetailViewController
var monster:Monster?

Then inside the VC that performs the segue, create a property for selectedMonster to assign based on indexPath : 然后在执行segue的VC中,为selectedMonster创建一个属性,以基于indexPath进行分配:

var selectedMonster:Monster?

Then when you user selects a cell: 然后,当用户选择一个单元格时:

selectedMonster = mons[indexPath.row] 

In this same VC, this method would be called when the performSegue(withIdentifier:) gets called: 在同一VC中,当performSegue(withIdentifier:)被调用时,将调用此方法:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "DetailVC" {
        let detailVC = segue.destination as! DetailViewController
        detailVC.monster = selectedMonster
    }
}

You may want to check how you call performSegue(withIdentifier:) , usually you want the sender to be self , ie : 您可能需要检查如何调用performSegue(withIdentifier:) ,通常您希望发送方是self ,即:

performSegue(withIdentifier: "DetailVC", sender: self)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从CollectionViewCell到另一个通过IndexPath的视图控制器进行筛选 - Segue from CollectionViewCell to Another View Controller Passing IndexPath 迅速。 如何以编程方式创建从自定义 CollectionViewCell 到 .xib 文件(ViewController)的 Segue? - Swift. How to create Segue from custom CollectionViewCell to .xib File (ViewController), by programmatically maybe? 来自CollectionViewCell的Swift Segue无法显示新视图 - Swift segue from CollectionViewCell failing to display new view 如何将indexPath从segue传递到目标视图? - How to pass indexPath from segue to destination view? 从UITableViewCell看如何包含indexPath数据? - Segue from UITableViewCell how to include indexPath data? Swift 2通过UICollectionionview(indexpath.row)中的segue传递数据 - Swift 2 passing data through segue from UIcollectionview (indexpath.row) 使用TableViewCell IndexPath值执行搜索 - Performing a segue with the TableViewCell IndexPath value 如何从页脚内的按钮传递indexPath到segue? - How to pass indexPath from button inside footer to segue? 没有从segue swift中获得价值3 - Not getting value from segue swift 3 从collectionviewcell快速切换到新视图会导致单击单元格时中断 - swift segue from collectionviewcell to a new view causes break when cell is clicked
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM