2016-12-04 73 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