У меня возникли проблемы с использованием камеры с пользовательским видом наложения.Ошибка: непризнанный селектор отправлен в экземпляр - Использование камеры с OverlayView
Это ViewController я использую, чтобы создать и представить UIImagePickerController
: взгляд обычай наложения
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 ...")
}
является * .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)
}
}
Когда я запускаю приложение, я получаю сообщение об ошибке (-[UIView takePictureButton:]: unrecognized selector sent to instance
), как только я нажимаю кнопку, которая должна вызывать функцию takePhotoButton(...)
.
Я довольно новичок в Xcode, разработке iOS и Swift ... в случае, если проблема явно. ;)
Заранее спасибо.
Как писал Лоуренс, «вы вызываете метод на неправильном объекте», [UIView takePictureButton:] означает, что метод метода takePictureButton вызывает экземпляр класса UIView (возможно, это myView?), Это должно быть неправильно, поскольку оно должно вызывает экземпляр UIButton, проверьте ваше соединение в IB (щелкните правой кнопкой мыши на «Владелец файлов» и ваш UIButton), я считаю, что причина там где-то там. –