【问题标题】:Presenting custom ViewController class in swift?快速呈现自定义 ViewController 类?
【发布时间】:2020-12-20 23:44:58
【问题描述】:

我正在尝试展示 SwiftyCam 视图控制器 (https://github.com/Awalz/SwiftyCam),但在尝试展示时遇到 SIGABRT 错误。我认为这是因为该类的类型是 SwiftyCamViewController 而不是 UIViewController,我怎样才能在不崩溃的情况下呈现视图控制器?

let vc = self.storyboard?.instantiateViewController(withIdentifier: "VideoTapingVC") as! VideoTapingVC
self.present(vc, animated: true)

class VideoTapingVC: SwiftyCamViewController, SwiftyCamViewControllerDelegate {
    
    let captureButton = SwiftyCamButton(frame: CGRect(x: 100, y: 400, width: 70, height: 70))
    override func viewDidLoad() {
        super.viewDidLoad()
        captureButton.delegate = self
        defaultCamera = .front
        doubleTapCameraSwitch = true
    }
    func swiftyCam(_ swiftyCam: SwiftyCamViewController, didBeginRecordingVideo camera: SwiftyCamViewController.CameraSelection) {
        
    }
    func swiftyCam(_ swiftyCam: SwiftyCamViewController, didSwitchCameras camera: SwiftyCamViewController.CameraSelection) {
    }
    func swiftyCam(_ swiftyCam: SwiftyCamViewController, didFinishProcessVideoAt url: URL) {
    }
}

这是尝试演示时的错误:

Could not cast value of type 'UIViewController' (0x1e882f178) to 'databaseProject.VideoTapingVC' (0x10487f290).

【问题讨论】:

  • SwiftyCamViewController 应该从 UIViewController 继承(否则项目将不会编译),因此您呈现的是 UIViewController。是否有任何其他打印/错误的日志可以提供更多详细信息?错误可能是任何东西 - 例如,故事板链接问题。
  • 你能分享一下 Xcode 给你的确切错误信息吗?
  • 我编辑了错误信息。呈现普通视图控制器时,代码可以正常工作

标签: ios swift uiviewcontroller viewcontroller


【解决方案1】:

错误消息描述了一个 UIViewController。我相信这是因为您忘记在情节提要的身份检查器中输入视图控制器类型。

【讨论】:

  • 事情就是这样,我犯了愚蠢的错误
  • 错误不是自己阅读错误消息。相信我,我们犯了你没有在身份检查器中进入班级的错误。 :) (你知道,比如每周一次。)
猜你喜欢
  • 2014-10-16
  • 1970-01-01
  • 2013-04-28
  • 1970-01-01
  • 1970-01-01
  • 2019-01-01
  • 2015-08-20
  • 2020-10-19
  • 1970-01-01
相关资源
最近更新 更多