-3
次のコードがあり、それはどうするのですか? カメラがQRコードを検出すると、識別子:SendDataSegueを通してDetailViewControllerが開きます。問題は、QRコードが検出されたときに何も起こらないということですか?誰も私をここで助けることができますか?私はprepareforsegueを使用しようとしているコードの最後にあります。qrコードでprepareforsegueを有効にしてください
func captureOutput(captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [AnyObject]!, fromConnection connection: AVCaptureConnection!) {
// Check if the metadataObjects array is not nil and it contains at least one object.
if metadataObjects == nil || metadataObjects.count == 0 {
qrCodeFrameView?.frame = CGRectZero
messageLabel.text = "No barcode/QR code is detected"
return
}
// Get the metadata object.
let metadataObj = metadataObjects[0] as! AVMetadataMachineReadableCodeObject
// Here we use filter method to check if the type of metadataObj is supported
// Instead of hardcoding the AVMetadataObjectTypeQRCode, we check if the type
// can be found in the array of supported bar codes.
if supportedBarCodes.contains(metadataObj.type) {
// if metadataObj.type == AVMetadataObjectTypeQRCode {
// If the found metadata is equal to the QR code metadata then update the status label's text and set the bounds
let barCodeObject = videoPreviewLayer?.transformedMetadataObjectForMetadataObject(metadataObj)
qrCodeFrameView?.frame = barCodeObject!.bounds
if metadataObj.stringValue != nil {
func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "SendDataSegue") {
// pass data to next view
}
}
}
}
}
あなたはそのメソッドを宣言していません。 'self.performSegue(" SendDataSegue "、sender:nil)'を実行するだけです。 – Larme
しかし、ラベルを持っていれば、DetailViewController上でQRコードの内容に変更する必要がありますか? –
あなたのコードを使用するとき@Larmeと言う:タイプViewControllerの値はメンバーがありませんpreformSegue –