为什么我不能关闭 Swift 中的 replaykit previewController?
Why cant I dismiss the replaykit previewController in Swift?
我在 swift 2 中使用了这段代码并且它起作用了。但现在在 Swift 3 中,当我按下取消或保存按钮时,录制完成时弹出的预览控制器 window 不会消失。我究竟做错了什么?
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)
至:
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)
}
我在 swift 2 中使用了这段代码并且它起作用了。但现在在 Swift 3 中,当我按下取消或保存按钮时,录制完成时弹出的预览控制器 window 不会消失。我究竟做错了什么?
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)
至:
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)
}