Ios 斯威夫特3:获得一个返回序列来播放音效

Ios 斯威夫特3:获得一个返回序列来播放音效,ios,swift,swift3,Ios,Swift,Swift3,我会直截了当地说,因为我觉得我的头衔可能需要进一步说明,才能真正理解我的困境。基本上;我有两个视图控制器与模态segue连接;我的第一个视图的主要功能的初始工作部分如下所示: @IBAction func beginButton(_ sender: Any) { audioPlayer.play() } 第二视图控制器设置如下:;它的功能完全排除了播放同一个音频播放器的需要 func performSegueToReturnBack() {

我会直截了当地说,因为我觉得我的头衔可能需要进一步说明,才能真正理解我的困境。基本上;我有两个视图控制器与模态segue连接;我的第一个视图的主要功能的初始工作部分如下所示:

 @IBAction func beginButton(_ sender: Any) {
        audioPlayer.play()
            } 
第二视图控制器设置如下:;它的功能完全排除了播放同一个音频播放器的需要

 func performSegueToReturnBack()  {
         audioPlayer.play()
            if let nav = self.navigationController {

                nav.popViewController(animated: true)
            } else {

                self.dismiss(animated: true, completion: nil)
            }

    }

任何关于如何使这项工作的想法都将不胜感激;谢谢你的帮助

看起来您可能缺少一些代码。这就是你将如何完成你正试图做的事情

    var audioPlayer = AVAudioPlayer()
    let alertSound = URL(fileURLWithPath: Bundle.main.path(forResource: "CheckoutScannerBeep", ofType: "mp3")!) // If sound is not in an asset
    //let alertSound = NSDataAsset(name: "CheckoutScannerBeep") // If sound is in an Asset

func testSound(){
    do {
        //        audioPlayer = try AVAudioPlayer(data: (alertSound!.data), fileTypeHint: AVFileTypeMPEGLayer3) //If in asset
        audioPlayer = try AVAudioPlayer(contentsOf: alertSound) //If not in asset
        audioPlayer.pan = -1.0 //left headphone
        //audioPlayer.pan = 1.0 // right headphone
        audioPlayer.prepareToPlay()
        audioPlayer.volume = 50
        audioPlayer.play()
    } catch  {
        print("error")
    }

}

func performSegueToReturnBack()  {
     testSound()
        if let nav = self.navigationController {

            nav.popViewController(animated: true)
        } else {

            self.dismiss(animated: true, completion: nil)
        }

}

你到底想做什么?我想要的是PerformsGuetoreReturnback功能,以便能够成功地播放音频播放器;但是调用该函数时不会产生任何声音重试-
override func viewwilldefine(uu动画:Bool){super.viewwilldefine(true)audioPlayer.play()}
谢谢Jack,完美解决了我的问题!