继承另一个视图控制器?
问题描述:
我正在关注使用Apple AVCam代码的过时指南。继承另一个视图控制器?
苹果提供了一个 “CameraViewController”。教师制作一个“摄像头”VC,将苹果的摄像头VC分类。在Apple的代码中,因为它与AVCamera一起工作,所以有一个实际显示相机输出的预览视图。在视频的家伙改变
@IBOutlet weak var previewView : PreviewView //Apple's PreviewView class
,并更改为
var _previewView : PreviewView
然后他经过苹果公司的代码和更改所有的previewView对_previewView,然后在自己的视图控制器有这样的:
class hisViewController: ApplesViewController {
@IBOutlet weak var previewView : PreviewView!
override func viewDidLoad() {
self._previewView = previewView
super.viewDidLoad()
}
}
当他运行它时,他让相机运行。当我运行这个时,我得到一个EXC断点错误:意外地发现零,同时展开一个可选值
我已经将previewView连接到了我的故事板。
在指南中,他在Swift项目中使用苹果的Objective-C代码,但现在Apple已经发布了Swift代码。
任何想法如何使这项工作/为什么错误发生?
答
在加载视图之前,不会分配IBOutlets。您正尝试在super.viewDidLoad触发之前访问IBOutlet,因此视图尚未出现在屏幕上,并且previewView为零。
你可以把它放在super.viewDidLoad后面,如果需要的话根据超类的代码刷新视图(self.view.layoufIfNeeded())