EXC_BAD_INSTRUCTION When Passing UICollectionView Cell Data to Different ViewController

后端 未结 2 1124
粉色の甜心
粉色の甜心 2020-12-07 06:00

I have a UICollectionView that I am populating based on Firebase data. I have created custom cells that populate the UICollectionView:

import UIKit
import Ma         


        
2条回答
  •  天涯浪人
    2020-12-07 06:40

    The crash occurs because the outlet passLabel is not connected yet when prepare(for segue is called.

    You have to declare a (temporary) variable in PollController and set the label in viewDidLoad

    class PollController: UIViewController {
    
        @IBOutlet weak var passLabel: UILabel!
    
        var pass = ""
    
        override func viewDidLoad() {
            super.viewDidLoad()
            passLabel.text = pass
        }
    
    ...
    

    In prepare(for segue set the variable rather than the text property of the label:

    let pollViewController = segue.destination as! PollController
        if let cell = sender as? PollCell {
            pollViewController.pass = cell.pollQuestion.text
        }
    }
    

    Note: It's not recommended to gather information from the view (cell). Get the index path and read the information from the model (data source array).

提交回复
热议问题