2016-11-18 93 views
0

我已經使用類似的代碼來顯示在下面的問題:How to scan for QR codes on button press?。 我現在可以始終激活相機預覽,並且只能在按下按鈕時才進行掃描。 我的問題是,我發現如果我(意外)在將焦點放在QR碼之前按下按鈕,閱讀器將自動掃描它看到的下一個QR碼。 有沒有什麼辦法可以解決任何意外的按鍵操作,並且只有掃描QR代碼時才能查看?QR掃描按鈕按下

任何幫助將不勝感激!

回答

0

很多頭部劃傷後,我終於研究出瞭解決辦法...

我基本上創建了一個將出現在我的相機預覽應該QR碼被檢測到的按鈕。默認情況下,此按鈕將被隱藏:

scanButton.isHidden = true 

然後使用以下代碼僅在找到QR碼時才顯示按鈕。這與代碼一起使用以在找到時突出顯示QR代碼。

if metadataObj.stringValue != nil { 
      scanButton.isHidden = false 
      view.bringSubview(toFront: scanButton) 
      data = metadataObj.stringValue 
     } 

用於scanButton的動作則是:

@IBAction func scanQRButton(_ sender: UIButton) { 
    print("Scanned QR: " + (data)) 
    captureSession?.stopRunning() 
} 

我將然後添加SEGUE函數來將該數據傳遞到另一個視圖控制器在哪裏可以使用它。

希望這是有道理的,並幫助別人避免我所做的所有頭部劃傷!