gpt4 book ai didi

ios - 错误 : unrecognized selector sent to instance - Using Camera with OverlayView

转载 作者:行者123 更新时间:2023-11-28 08:38:25 24 4
gpt4 key购买 nike

我在使用带有自定义叠加 View 的相机时遇到了一些问题。

这是我用来设置和呈现 UIImagePickerController 的 ViewController:

import UIKit

class ViewController: UIViewController, CameraOverlayDelegate {

var imagePicker = UIImagePickerController()

@IBAction func pickImageButton(sender: AnyObject) {

if UIImagePickerController.isSourceTypeAvailable(
UIImagePickerControllerSourceType.Camera) {

imagePicker = UIImagePickerController()
imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
imagePicker.showsCameraControls = false

let myCameraOverlayViewController = CameraOverlayViewController(
nibName:"CameraOverlayView",
bundle: nil)
let customView = myCameraOverlayViewController.view
customView.frame = imagePicker.view.frame
imagePicker.cameraOverlayView = customView

myCameraOverlayViewController.delegate = self
presentViewController(imagePicker, animated: true, completion: nil)

} else {
print("No camera")
}
}

func didTakePhoto(sender: CameraOverlayViewController) {
print("Do something ...")
}

自定义叠加 View 是一个 *.xib 文件,这是我使用的 CameraOverlayViewController:

import UIKit

protocol CameraOverlayDelegate {
func didTakePhoto(sender: CameraOverlayViewController)
}

class CameraOverlayViewController: UIViewController {

var delegate: CameraOverlayDelegate! = nil

@IBOutlet var myView: UIView!

@IBAction func takePhotoButton(sender: AnyObject) {
delegate.didTakePhoto(self)
}
}

当我运行该应用程序时,只要单击应调用 takePhotoButton(. ..)-函数。

我是 Xcode、iOS 开发和 Swift 的新手……以防问题很明显。 ;)

提前致谢。

最佳答案

您的错误意味着您在错误的对象上调用了方法。基本上每当你遇到 unrecognized selector... 就意味着你的括号里面有问题。

takePhotoButton() 有一个 AnyObject 类型的发送器,但是它调用了 didTakePhoto() 有一个 CameraOverlayViewController 类型的发送器。所以一个按钮调用一个应该由 View Controller 调用的方法。现在您看到差异了吗?

正在修复它……我帮不了你。也许别人可以。正如我上面所说,同一个对象必须调用你的两个方法。或者,也许您没有在 Storyboard 中正确分配某些内容。

关于ios - 错误 : unrecognized selector sent to instance - Using Camera with OverlayView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37035051/

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