2016-09-02 4 views
1

QRコードを見つけると、detailViewControllerがモーダルで開かれています。あなたのdetailViewController上で、あなたがスキャンしたい正しいQRコードではない場合など、モーダルを却下することができます。問題は私のコードではQRコードリーダーが停止するように設定されていて、QRコードが見つかったときにそのモーダルを閉じたときに再び起動しないということです。私はそれをもう一度始めることができますか?すぐに停止したときにQRコードリーダーを再開する

ここでは、QRコードのViewControllerからの私のコード、QRコードを見つけ、QRリーダーを停止する下部にあるとき、私のアプリの残りの部分に何かをするだけの部分があります。

if metadataObj.stringValue != nil { 
      // messageLabel.text = metadataObj.stringValue 

      messageLabel.backgroundColor = UIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0) 
      messageLabel.text = "QR code found!" 
      passData = metadataObj.stringValue as String 

      dispatch_async(dispatch_get_main_queue()) { [unowned self] in 
       self.performSegueWithIdentifier("SendDataSegue", sender: self.passData) 
      } 

      self.captureSession!.stopRunning() // This is the part stopping it 
     } 

答えて

0

ですあなたはcaptureSession

self.captureSession!.stopRunning() // This is the part stopping it 

を停止しているため停止あなたのViewControllerを却下した後、あなたは、あなたのself.captureSessionがnilであるかどうかを確認する必要があり、それがnilであるならば、あなたは新しいキャプチャセッションを作成する必要があり、それはその後、nilでない場合よuはあなたのcaptureSessionを初期化し、viewWillAppearでのViewControllerを閉じると上ごsession.Asを開始viewDidLoadにしたがって、この

self.captureSession!.startRunning() 

again.Likeそのセッションを開始する必要があり、のviewDidLoadが呼ばれることはありません。

+0

if文を入れる必要がありますか?そのコードは、viewDidLoadの先頭にありますか? –

+0

IがのviewDidLoadとdidRecieveMemoryWarning間、このコードを追加しました:{ captureSession場合==ゼロ{ captureSession .startRunning() }!} 'を任意運無し:'オーバーライドviewWillAppear FUNC(BOOLアニメーション)。解雇時にはまだ始まりません。 –

+0

captureSession!= nil {captureSession!。startRunning()} – Rajat

関連する問題