当前位置: 首页 > 面试题库 >

将UICollectionView单元格数据传递到其他ViewController时EXC_BAD_INSTRUCTION

宣瀚
2023-03-14
问题内容

我有一个基于Firebase数据填充的UICollectionView。我已经创建了填充UICollectionView的自定义单元格:

import UIKit
import Material

class PollCell: CollectionViewCell {

var key: String? {
get {
return self.key
}
}
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var pollQuestion: UILabel!

public required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

    }
}

我试图访问UICollectionView中单击的单元格的pollQuestion变量,并将其传递给另一个ViewController:

     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "toPoll" {
    let pollViewController = segue.destination as! PollController
        if let cell = sender as? PollCell {
            pollViewController.passLabel.text = cell.pollQuestion.text
        }
    }
}

PollController:

import UIKit

class PollController: UIViewController {

@IBOutlet weak var passLabel: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
  }

}

更新:我已经修改了代码,现在收到错误

该应用程序在运行时崩溃,我正在尝试解决:

在此处输入图片说明


问题答案:

发生崩溃是因为在调用passLabel时尚未连接插座prepare(for segue

您必须在中声明(临时)变量PollController并在中设置标签viewDidLoad

class PollController: UIViewController {

    @IBOutlet weak var passLabel: UILabel!

    var pass = ""

    override func viewDidLoad() {
        super.viewDidLoad()
        passLabel.text = pass
    }

...

prepare(for segue设置变量而不是text标签的属性时:

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

注意:不建议从 视图 (单元格)收集信息。获取索引路径并从 模型 (数据源数组)中读取信息。



 类似资料:
  • 问题内容: 我有一个想要完全适应我想要的应用程序 我一直在关注Seemu Apps的Youtube教程,但是我需要添加一个可选的ViewController来完成它 该应用程序有2个显示车辆的tableViews,如果我们单击第一个tableView的一行,则第二个tableView将向我们显示选定车辆的列表。 这是到目前为止我们所拥有的:(图像链接,因为我在stackOverFlow上没有十分的

  • 我在TableViewController的单元格中有一个图形视图,我希望将一个数组从TableViewController传递给该视图。我该如何解决这个问题?

  • 问题内容: 我想创建一个指令来组织按日期分组的显示数据。我还希望能够指定将显示各个行的指令。在一个完美的世界中,它看起来像这样(但又漂亮又漂亮) 这显然是行不通的,因此,如果您有更好的方法,请告诉我,但我希望能够按照以下方式做点事情: 然后像这样使用它: 我知道这很丑陋(并且不起作用,但是我敢肯定我可以通过一些调整使其工作),所以我真正要问的是,有没有更好的方法来做到这一点? 问题答案: 这个问题

  • 问题内容: 我在Django应用程序中有一个用户注册表格,该表格收集用户尝试注册时的其他数据,例如地址,城市,国家/地区,电话号码等。 该数据通过信号保存在“帐户”模型类中。用户创建过程如下所示: 在这里,当用户发布表单时将调用该函数,在该函数下,我可以获得POST数据,我想要的是将该数据传递给方法,以便其填充模型中的字段。 现在,我确实看到了在数据库中创建的对象,但是除用户字段之外的所有字段均为

  • 我有一个VBA脚本,可以计算Outlook中选定文件夹中的未读电子邮件。目前,帐户和文件夹名是硬编码到脚本中的,但我想让它可以从excel表单中配置。 当前该变量设置在以下位置: 理想情况下,我希望有一个名为Config的工作表,其数据如下: 有没有人能提供一些关于如何做到这一点的线索?

  • 我试图根据单击的tableView单元格呈现一个viewController。 当前,如果它们都被点击,它们将重定向到相同的viewController,我将如何改变这一点? 我能在手机标签上做一个if ell.text吗?如if(celllabel.text==“Option8){func tableView(tableView:UITableView,DidSelectRowIndexPath