我现在尝试了许多小时,试图使我的应用程序正常工作。问题在于该应用检测到QR码后,不会显示新的视图控制器。它将在该新视图控制器中向日志执行简单的打印语句,但应用程序中不存在新的视图控制器。我已经在Stackoverflow上尝试了许多解决方案,但在这种特定情况下似乎没有帮助。

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,该应用程序应在扫描QR码后转到。 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")
}


日志确实显示了打印语句“ Hi”,但应用程序未转到infoViewController。故事板中还装有infoViewController,并选择了infoViewController类。

我目前缺少细节吗?

问候

最佳答案

首先,您必须在infoViewController上选择storyboard,在身份检查器中,您必须添加如下所示的Storyboard ID

ios - 扫描二维码后如何进入新的viewcontroller?-LMLPHP

然后,您必须像这样显示infoViewController

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

关于ios - 扫描二维码后如何进入新的viewcontroller?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41617249/

10-12 06:18