2016-04-11 6 views
4

私はリプレイキットを使って自分の画面を録画し、プレビュー画面が表示されたらキャンセルボタンを押して画面を消すが何もしない。私はデリゲートfunc previewControllerDidFinishを却下するコードを持っていますが、それは遠ざかりません。キャンセルを押すと誰かがウィンドウを閉じる方法を知っていますか?ありがとう! SWIFT 3.2Replaykitウィンドウは、Swiftのキャンセルボタンを押すと消えませんか?

まずで

func previewControllerDidFinish(previewController: RPPreviewViewController) { 
    print("Preview finish") 

     // close preview window 
     previewController.dismissViewControllerAnimated(true, completion: nil) 
    } 

答えて

1

:ストップ録画ボタンが

if RPScreenRecorder.shared().isRecording { 
RPScreenRecorder.shared().stopRecording { (previewController: RPPreviewViewController?, error: Error?) in 
    if previewController != nil { 
     let alertController = UIAlertController(title: "Recoring", message: "Do you wish to discard or view your recording?", preferredStyle: .alert) 
     let discardAction = UIAlertAction(title: "Discard", style: .destructive, handler: nil) 

     let viewAction = UIAlertAction(title: "View", style: .default, handler: { (action: UIAlertAction) in 

      // set delegate here 
      previewController?.previewControllerDelegate = self 

      self.present(previewController!, animated: true, completion: nil) 
     }) 

     alertController.addAction(discardAction) 
     alertController.addAction(viewAction) 
     self.present(alertController, animated: true, completion: nil) 
    } 
} 

}

1

しようとすると呼ばれ、閉鎖にデリゲートを設定すると

class ViewController: UIViewController, RPPreviewViewControllerDelegate { 

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

この代理人を実装するate

- (void)previewController:(RPPreviewViewController *)previewController didFinishWithActivityTypes:(nonnull NSSet<NSString *> *)activityTypes { 

    [previewController dismissViewControllerAnimated:YES completion:^{ 

    }]; 
} 
関連する問題