2016-09-19 4 views
0

Ich habe diesen Code in Swift 2 verwendet und es hat funktioniert. Aber jetzt in Swift 3 wird das Vorschau-Controller-Fenster, das erscheint, wenn die Aufnahme beendet ist, nicht geschlossen, wenn ich die Abbrechen- oder Speichern-Taste drücke. Was mache ich falsch?Warum kann ich den replaykit previewController in Swift nicht ignorieren?

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) 

} 

Antwort

1

// diesen Code Versuchen Sie hoffen, dass es hilft:

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) 
} 
1

Sie sollten die letzte Zeile von ändern:

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

zu:

dismiss(animated: true, completion: nil) 
Verwandte Themen