子类化另一个视图控制器?
Subclassing another view controller?
我正在关注有关使用 Apple 的 AVCam 代码的过时指南。
Apple 提供了 "CameraViewController"。讲师制作了一个 "Camera" VC 子类化 Apple 的相机VC。在 Apple 的代码中,因为它使用的是 AVCamera,所以有一个实际显示相机输出的预览视图。在视频中,这家伙改变了
@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
我肯定已经将 previewView 连接到我的故事板。
在指南中,他在 Swift 项目中使用了 Apple 的 Objective-C 代码,但现在 Apple 发布了 Swift 代码。
关于如何使这项工作起作用/为什么会发生错误的任何想法?
在加载视图之前不会分配 IBOutlet。您正试图在 super.viewDidLoad 触发之前访问 IBOutlet,因此视图尚未出现在屏幕上,previewView 为 nil。
你可以把它放在 super.viewDidLoad 之后,如果需要,根据超类的代码刷新视图 (self.view.layoufIfNeeded())
我正在关注有关使用 Apple 的 AVCam 代码的过时指南。
Apple 提供了 "CameraViewController"。讲师制作了一个 "Camera" VC 子类化 Apple 的相机VC。在 Apple 的代码中,因为它使用的是 AVCamera,所以有一个实际显示相机输出的预览视图。在视频中,这家伙改变了
@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
我肯定已经将 previewView 连接到我的故事板。
在指南中,他在 Swift 项目中使用了 Apple 的 Objective-C 代码,但现在 Apple 发布了 Swift 代码。
关于如何使这项工作起作用/为什么会发生错误的任何想法?
在加载视图之前不会分配 IBOutlet。您正试图在 super.viewDidLoad 触发之前访问 IBOutlet,因此视图尚未出现在屏幕上,previewView 为 nil。
你可以把它放在 super.viewDidLoad 之后,如果需要,根据超类的代码刷新视图 (self.view.layoufIfNeeded())