2016-12-04 8 views
0

Ich habe in meiner ios-Anwendung eine Wischgeste hinzugefügt, aber irgendwie kann ich danach nicht mehr auf die Kamera zugreifen. Ich bin Anfänger in swift und ich würde mich sehr freuen, wenn Sie mir Ratschläge geben können, wie ich es beheben kann.Zugriff auf die Kamera mit der Wischgeste?

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) 

} 

und für die Funktion: Bisher habe ich verwendet

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

Was passiert, wenn Sie wischen? Hast du debuggen? Wird 'handleSwipes' sogar aufgerufen? – matt

+0

Dies ist der Fehler, den ich bekomme: Beenden App aufgrund der nicht abgefangenen Ausnahme 'NSInvalidArgumentException', Grund: '- [Audio.ViewController HandleSwipes]: unerkannter Selektor an Instanz 0x100d0be50 gesendet' – Dakata

+0

Ja, ich dachte, das könnte sein, was passiert ist! :) – matt

Antwort

1

Wo Sie haben:

action: Selector(("handleSwipes")) 

put this:

action: #selector(handleSwipes) 

Der Grund ist, dass "handleSwipes" ist nicht der Selektor für Ihre handleSwipes Funktion, und Sie weiß nicht, wie man den Selektor richtig bildet. Aber der Compiler weiß es, und mit der #selector Syntax sagt er es zu tun.

+0

Eigentlich muss es 'handleSwipes (sender:)' sein, nicht nur 'handleSwipes'. – rmaddy

+0

@rmaddy Nein, tut es nicht. – matt

+0

Warum nicht? Die tatsächliche Methode benötigt einen Parameter, sodass der Selektor den Parameter enthalten muss. – rmaddy

Verwandte Themen