2016-12-04 2 views
0

В моем приложении ios я добавил жестом салфетки, но каким-то образом я не могу получить доступ к камере после этого. Я начинаю быстро, и я был бы очень рад, если бы вы могли посоветовать мне, как это исправить. До сих пор я использовал:Как получить доступ к камере с помощью жестов?

import UIKit 

class ViewController: UIViewController, UIImagePickerControllerDelegate,UINavigationControllerDelegate{ 

let imagePicker: UIImagePickerController! = UIImagePickerController() 
let reachability = Reachability()! 

override func viewDidLoad() { 

    super.viewDidLoad() 

    imagePicker.delegate = self 

    self.view.backgroundColor = UIColor.flatBlackColorDark() 

    let upSwipe = UISwipeGestureRecognizer(target: self, action: Selector(("handleSwipes"))) 

    upSwipe.direction = .up 

    view.addGestureRecognizer(upSwipe) 

} 

и функции:

func handleSwipes(sender:UISwipeGestureRecognizer) { 

     if (sender.direction == .up){ 

      if (UIImagePickerController.isSourceTypeAvailable(.camera)){ 
       if UIImagePickerController.availableCaptureModes(for: .rear) != nil { 
        imagePicker.allowsEditing = false 
        imagePicker.sourceType = .camera 
        imagePicker.cameraCaptureMode = .photo 
        present(imagePicker,animated: true, completion: {}) 
       } 
      } 
+0

Что происходит, когда вы садитесь? Вы отлаживали? Вызывается ли 'handleSwipes'? – matt

+0

Это ошибка, которую я получаю: Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: '- [Audio.ViewController handleSwipes]: нераспознанный селектор, отправленный в экземпляр 0x100d0be50' – Dakata

+0

Да, я думал, что это может быть то, что происходит! :) – matt

ответ

1

Где у вас есть:

action: Selector(("handleSwipes")) 

положить это:

action: #selector(handleSwipes) 

Причина в том, что "handleSwipes" - не селектор для вашей функции handleSwipes, и вы не знаете, как правильно сформировать селектор. Но компилятор знает, и с помощью #selector синтаксис говорит ему об этом.

+0

На самом деле это должно быть 'handleSwipes (sender:)', а не только 'handleSwipes'. – rmaddy

+0

@rmaddy Нет, это не так. – matt

+0

Почему бы и нет? Фактический метод принимает параметр, поэтому селектор должен включать параметр. – rmaddy