当我尝试从情节提要中进行 segue 时,为什么会在这行代码中出现 seg 错误?

傲慢

所以,我试图将故事板中的一个按钮连接到另一个 ViewController。但是,每次我点击按钮时,应用程序都会崩溃。这是应用程序崩溃时突出显示的代码行。

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    let barcodeViewController: BarcodeReaderViewController = segue.destination as! BarcodeReaderViewController
    barcodeViewController.delegate = self

}

这是我的 BarCodeVC

import UIKit
import AVFoundation

protocol BarcodeDelegate {
  func barcodeReaded(barcode: String)
}

class BarcodeViewController: UIViewController, 
                             AVCaptureMetadataOutputObjectsDelegate {

var delegate: BarcodeDelegate?

var videoCaptureDevice: AVCaptureDevice = 
 AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo)
var device = AVCaptureDevice.defaultDevice(withMediaType: 
  AVMediaTypeVideo)
var output = AVCaptureMetadataOutput()
var previewLayer: AVCaptureVideoPreviewLayer?

var captureSession = AVCaptureSession()
var code: String?

override func viewDidLoad() {
  super.viewDidLoad()

  self.view.backgroundColor = UIColor.clear
  self.setupCamera()
}

private func setupCamera() {

  let input = try? AVCaptureDeviceInput(device: videoCaptureDevice)

  if self.captureSession.canAddInput(input) {
      self.captureSession.addInput(input)
  }

  self.previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)

  if let videoPreviewLayer = self.previewLayer {
      videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
      videoPreviewLayer.frame = self.view.bounds
      view.layer.addSublayer(videoPreviewLayer)
  }

  let metadataOutput = AVCaptureMetadataOutput()
  if self.captureSession.canAddOutput(metadataOutput) {
      self.captureSession.addOutput(metadataOutput)

      metadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
      metadataOutput.metadataObjectTypes = [AVMetadataObjectTypeQRCode, AVMetadataObjectTypeEAN13Code]
  } else {
      print("Could not add metadata output")
  }
}

 override func viewWillAppear(_ animated: Bool) {
   super.viewWillAppear(animated)

   if (captureSession.isRunning == false) {
      captureSession.startRunning();
   }
}

override func viewWillDisappear(_ animated: Bool) {
  super.viewWillDisappear(animated)

  if (captureSession.isRunning == true) {
     captureSession.stopRunning();
  }
}

func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {
   // This is the delegate'smethod that is called when a code is readed
   for metadata in metadataObjects {
       let readableObject = metadata as! AVMetadataMachineReadableCodeObject
       let code = readableObject.stringValue


       self.dismiss(animated: true, completion: nil)
       self.delegate?.barcodeReaded(barcode: code!)
       print(code!)
   }
 }
}

我的 segue 只是一个简单的拖动显示,而不是以编程方式显示。所以我对它为什么会崩溃感到有些困惑。

这是错误:

无法将“BarCodeProj.ViewController”(0x1000361b0)类型的值转换为“BarCodeProj.BarcodeViewController”(0x100035a78)。

丹尼尔·T。

在这种情况下,控制台错误会告诉您需要知道的一切。segue.destination不是 aBarcodeReaderViewController所以你试图将它转换为 one (with as!) 会导致灾难性的失败。

首先,检查您的故事板并确保正确设置视图控制器的类型(您要转换到的类型。)

通过在故事板中选择适当的视图控制器并在此处检查来做到这一点:

必须输入类名的位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我在这段代码中出现细分错误

来自分类Dev

为什么我在这行代码上不断收到“意外令牌”错误?

来自分类Dev

当我尝试标记情节时出现此类型错误

来自分类Dev

为什么我在此特定代码中出现段错误?

来自分类Dev

为什么我在以下代码中出现分段错误?

来自分类Dev

当我尝试Apache Spark的Streaming Kmeans集群的官方示例时,为什么在model.predictOnValues中出现类型错误?

来自分类Dev

读取符号时出现gdb seg错误

来自分类Dev

为什么在比较 python 中的字符串时,我的代码中出现“!=”不相等的错误?

来自分类Dev

当我尝试删除产品时,Magento中出现错误

来自分类Dev

从情节提要加载时,XCTest中出现“无法投射”错误

来自分类Dev

谁能告诉我为什么我在此C代码中出现分段错误?

来自分类Dev

C ++ unordered_map emplace()函数抛出seg错误,我也不知道为什么

来自分类Dev

为什么我的汇编代码中出现这些错误(选项案例图:无)?

来自分类Dev

难以理解为什么我的代码中出现分段错误(核心已转储)

来自分类Dev

为什么我的作业代码中出现“未定义”错误?

来自分类Dev

我的 VBA 代码中出现路径/文件访问错误?为什么会这样?

来自分类Dev

为什么我在java中的文件输入输出代码中出现一些错误?

来自分类Dev

有什么想法为什么我在添加声音时在Sprite Kit中出现此错误?

来自分类Dev

每当我每次运行时尝试在应用程序中进行gmail登录集成时,都会显示相同的错误

来自分类Dev

每当我每次运行时尝试在应用程序中进行gmail登录集成时,都会显示相同的错误

来自分类Dev

尝试发布JSON数据时,为什么在logcat中出现此错误?

来自分类Dev

为什么当我尝试打印我正在搜索的文件的内容时出现错误?

来自分类Dev

致命错误:单击特定单元格进行 segue 时索引超出范围

来自分类Dev

情节提要Segue过渡效果

来自分类Dev

从情节提要到XIB的Segue

来自分类Dev

当我尝试使用htacces从laravel中删除公共目录时,为什么会出现错误

来自分类常见问题

当我尝试输出数组时为什么会出现异常错误

来自分类Dev

当我尝试向函数传递所传递数组的长度时,为什么会出现错误?

来自分类Dev

当我尝试从 Controller 读取会话属性时,为什么会出现“未定义”错误

Related 相关文章

  1. 1

    为什么我在这段代码中出现细分错误

  2. 2

    为什么我在这行代码上不断收到“意外令牌”错误?

  3. 3

    当我尝试标记情节时出现此类型错误

  4. 4

    为什么我在此特定代码中出现段错误?

  5. 5

    为什么我在以下代码中出现分段错误?

  6. 6

    当我尝试Apache Spark的Streaming Kmeans集群的官方示例时,为什么在model.predictOnValues中出现类型错误?

  7. 7

    读取符号时出现gdb seg错误

  8. 8

    为什么在比较 python 中的字符串时,我的代码中出现“!=”不相等的错误?

  9. 9

    当我尝试删除产品时,Magento中出现错误

  10. 10

    从情节提要加载时,XCTest中出现“无法投射”错误

  11. 11

    谁能告诉我为什么我在此C代码中出现分段错误?

  12. 12

    C ++ unordered_map emplace()函数抛出seg错误,我也不知道为什么

  13. 13

    为什么我的汇编代码中出现这些错误(选项案例图:无)?

  14. 14

    难以理解为什么我的代码中出现分段错误(核心已转储)

  15. 15

    为什么我的作业代码中出现“未定义”错误?

  16. 16

    我的 VBA 代码中出现路径/文件访问错误?为什么会这样?

  17. 17

    为什么我在java中的文件输入输出代码中出现一些错误?

  18. 18

    有什么想法为什么我在添加声音时在Sprite Kit中出现此错误?

  19. 19

    每当我每次运行时尝试在应用程序中进行gmail登录集成时,都会显示相同的错误

  20. 20

    每当我每次运行时尝试在应用程序中进行gmail登录集成时,都会显示相同的错误

  21. 21

    尝试发布JSON数据时,为什么在logcat中出现此错误?

  22. 22

    为什么当我尝试打印我正在搜索的文件的内容时出现错误?

  23. 23

    致命错误:单击特定单元格进行 segue 时索引超出范围

  24. 24

    情节提要Segue过渡效果

  25. 25

    从情节提要到XIB的Segue

  26. 26

    当我尝试使用htacces从laravel中删除公共目录时,为什么会出现错误

  27. 27

    当我尝试输出数组时为什么会出现异常错误

  28. 28

    当我尝试向函数传递所传递数组的长度时,为什么会出现错误?

  29. 29

    当我尝试从 Controller 读取会话属性时,为什么会出现“未定义”错误

热门标签

归档