如何子类UIViewControllers?

时间:2015-12-30 21:37:26

标签: ios swift

我想继承UIImagePickerController。我想为它添加cameraOverlays。但是,我想借助故事板来做到这一点。所以我将UIImagePickerController连接到Storyboard中的UIViewController,并带有一个测试按钮。这是我的代码。

import UIKit

class ImagePickerViewController: UIImagePickerController {

  @IBOulet weak var button: UIButton!
  override func viewDidLoad() {
    super.viewDidLoad()
    self.cameraOverlayView?.addSubview(button)
  }

}

但是,使用此代码,我收到错误found nil while executing the code。我希望我的问题有道理。基本上我想添加相机覆盖,而无需以编程方式编写所有内容。我想在故事板中设计叠加层,然后以某种方式调用它们并将它们添加到我的相机叠加层。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

您应该使用自定义控件创建一个视图,并将其分配给属性cameraOverlayView,默认情况下cameraOverlayView为nil,您必须将其设置为某个视图。

您不应该为UIImagePickerController创建子类,而是为叠加层创建自定义视图,而实例化pickerController的对象应该只是将其分配给该属性。这样,你不必按照official docs(强调我的)来继承子类:

  

重要

     

UIImagePickerController类仅支持纵向模式。 此类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改,但有一个例外。您可以将自定义视图分配给cameraOverlayView属性,并使用该视图显示其他信息或管理相机界面与代码之间的交互。

相关问题