gpt4 book ai didi

swift - 子类化另一个 View Controller ?

转载 作者:行者123 更新时间:2023-11-28 12:37:22 25 4
gpt4 key购买 nike

我正在遵循有关使用 Apple 的 AVCam 代码的过时指南。

https://developer.apple.com/library/content/samplecode/AVCam/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010112-Intro-DontLinkElementID_2

Apple 提供了“CameraViewController”。讲师制作了一个“相机”VC,它是 Apple 的 cameraVC 的子类。在 Apple 的代码中,因为它与 AVCamera 一起工作,所以有一个预览 View 实际显示了相机输出。在视频中,这家伙改变了

@IBOutlet weak var previewView : PreviewView //Apple's PreviewView class

并将其更改为

var _previewView : PreviewView

然后他检查了 apple 的代码并将所有 previewView 更改为 _previewView,然后在他自己的 ViewController 中有这个:

class hisViewController: ApplesViewController {

@IBOutlet weak var previewView : PreviewView!

override func viewDidLoad() {

self._previewView = previewView
super.viewDidLoad()

}

}

当他运行它时,他让相机运行。当我运行它时,出现 EXC 断点错误:在展开可选值时意外发现 nil

我确实已将预览 View 连接到我的 Storyboard。

在指南中,他在 Swift 项目中使用了 Apple 的 Objective-C 代码,但现在 Apple 已经发布了 Swift 代码。

关于如何使这项工作起作用/为什么会发生错误的任何想法?

最佳答案

IBOutlets 在加载 View 之前不会被分配。您正尝试在 super.viewDidLoad 触发之前访问 IBOutlet,因此 View 尚未出现在屏幕上,previewView 为 nil。

你可以把它放在 super.viewDidLoad 之后,并根据父类的代码(self.view.layoufIfNeeded())在需要时刷新 View

关于swift - 子类化另一个 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40471107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com