2017-01-12 13 views
0

私は今、私のアプリケーションを動作させるために何時間も試してみました。問題は、アプリケーションがQRコードを検出した後、新しいView Controllerを表示しないということです。新しいビューコントローラでログに簡単なプリントステートメントが実行されますが、アプリケーションに新しいビューコントローラはありません。私はすでにStackoverflow上で多くのソリューションを試しましたが、この特定のケースでは役に立たないようです。私はアプリがQRコードをスキャンした後に行くことになっている新しいinfoViewControllerを指すようにラインに最後に使用しQRコードをスキャンした後に新しいviewcontrollerに移動するには?

func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) { 
    captureSession.stopRunning() 

    if let metadataObject = metadataObjects.first { 
     let readableObject = metadataObject as! AVMetadataMachineReadableCodeObject; 

     AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate)) 
     found(code: readableObject.stringValue); 

    } 
    let vc = infoViewController() 
    self.present(vc, animated: true, completion: nil) 

。次のようにinfoViewControllerのコードは次のとおりです。

import UIKit 

class infoViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     print("Hi") 
} 

ログは「こんにちは」print文を示していますが、アプリケーションはinfoViewControllerに行っていません。ストーリーボードにはinfoViewControllerがあり、infoViewControllerクラスが選択されています。

詳細は不明ですか?

挨拶

+0

キャプチャアウトではどのような種類のオブジェクトですか?関数を置く? – Lefteris

+0

stroryboardまたはxibを使用していますか –

+0

ViewControllerを表示する場合は、他のViewControllerのものでなければなりません。 –

答えて

0

まず、あなたのstoryboardinfoViewControllerを選択する必要がとアイデンティティインスペクタで、あなたはこのようStoryboard IDを追加する必要があります。

enter image description here

次にあなたがinfoViewControllerを提示しなければなりませんこのように:

OperationQueue.main.addOperation { 
    let infoViewController = self.storyboard?.instantiateViewController(withIdentifier: "infoViewController" 
    self.present(infoViewController, animated: true) 
} 
+0

残念ながら、 viewDidLoad関数も入力しません: '( – Jelleko

+0

'infoViewController'クラスをストーリーボードの' ViewController'に設定しましたか? – pableiros

関連する問題