Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我不能在Swift中关闭replaykit previewController?_Swift_Xcode_Replaykit - Fatal编程技术网

为什么我不能在Swift中关闭replaykit previewController?

为什么我不能在Swift中关闭replaykit previewController?,swift,xcode,replaykit,Swift,Xcode,Replaykit,我在swift 2中使用了这段代码,它成功了。但现在在Swift 3中,录制完成时弹出的预览控制器窗口在我按下取消或保存按钮时不会消失。我做错了什么 func stopRecording() { let sharedRecorder = RPScreenRecorder.shared() sharedRecorder.stopRecording(handler: { (previewController: RPPreviewViewController?, error) in if prev

我在swift 2中使用了这段代码,它成功了。但现在在Swift 3中,录制完成时弹出的预览控制器窗口在我按下取消或保存按钮时不会消失。我做错了什么

func stopRecording() {

let sharedRecorder = RPScreenRecorder.shared()
sharedRecorder.stopRecording(handler: { (previewController: RPPreviewViewController?, error) in

if previewController != nil {
            print("stopped recording")

                self.previewViewController.previewControllerDelegate = self
                self.view?.window?.rootViewController?.present(previewController!, animated: true, completion: nil)
 }



func previewControllerDidFinish(previewController: RPPreviewViewController) {

previewController.dismiss(animated: true, completion: nil)

}

您应将最后一行更改为:

previewController.dismiss(animated: true, completion: nil)
致:


您应将最后一行更改为:

previewController.dismiss(animated: true, completion: nil)
致:


//请尝试此代码,希望对您有所帮助:

func startRecording() {
    let recorder = RPScreenRecorder.shared()

    if #available(iOS 9.0, *) {
        recorder.startRecording(withMicrophoneEnabled: true) { [unowned self] (error) in
            if let unwrappedError = error {
                print(unwrappedError.localizedDescription)
            } else {
                self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Stop", style: .plain, target: self, action: #selector(PreviewVC.stopRecording))
            }
        }
    } else {
        // Fallback on earlier versions
    }
}

func stopRecording() {
    let recorder = RPScreenRecorder.shared()

    recorder.stopRecording { [unowned self] (preview, error) in
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Start", style: .plain, target: self, action: #selector(PreviewVC.startRecording))

        if let unwrappedPreview = preview {
            unwrappedPreview.previewControllerDelegate = self
            self.present(unwrappedPreview, animated: true, completion: nil)
        }
    }
}

func previewControllerDidFinish(_ previewController: RPPreviewViewController) {
    self.dismiss(animated: true, completion: nil)
}

//请尝试此代码,希望对您有所帮助:

func startRecording() {
    let recorder = RPScreenRecorder.shared()

    if #available(iOS 9.0, *) {
        recorder.startRecording(withMicrophoneEnabled: true) { [unowned self] (error) in
            if let unwrappedError = error {
                print(unwrappedError.localizedDescription)
            } else {
                self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Stop", style: .plain, target: self, action: #selector(PreviewVC.stopRecording))
            }
        }
    } else {
        // Fallback on earlier versions
    }
}

func stopRecording() {
    let recorder = RPScreenRecorder.shared()

    recorder.stopRecording { [unowned self] (preview, error) in
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Start", style: .plain, target: self, action: #selector(PreviewVC.startRecording))

        if let unwrappedPreview = preview {
            unwrappedPreview.previewControllerDelegate = self
            self.present(unwrappedPreview, animated: true, completion: nil)
        }
    }
}

func previewControllerDidFinish(_ previewController: RPPreviewViewController) {
    self.dismiss(animated: true, completion: nil)
}