iPad で RPBroadcastActivityViewController を表示するにはどうすればよいですか。
標準コードを使用して記録を開始しています
RPBroadcastActivityViewController.load { [unowned self] (broadcastActivityViewController, error) in
// If an error has occurred, display an alert to the user.
if let error = error {
self.showAlert(message: error.localizedDescription)
return
}
// Present vc
if let broadcastActivityViewController = broadcastActivityViewController {
broadcastActivityViewController.delegate = self
// present
self.present(...
}
}
iPhone では動作しますが、iPad では何も表示されず、アプリがフリーズします。この機能を使用するアプリ ストアのゲームを調べていたところ、同じ問題に気付きました。
たとえば、ゲーム Tower Dash では、iPad でライブ ストリーム ボタンを押しても何も表示されず、iPhone でのみ機能します。
ポップオーバー プレゼンテーションをいじってみましたが、何もうまくいかないようです。
何か不足していますか?
更新: これはバグのようです。リンゴ自身の Swift Playground アプリでも、これは起こります。
更新 2: Apple は実際に私のバグ レポートに応答し、iPad で View Controller をポップオーバーとして表示する必要があると教えてくれました。
UIDevice.current.userInterfaceIdiom == .pad {
broadcastAVC.popoverPresentationController?.sourceView = view
broadcastAVC.popoverPresentationController?.sourceRect = CGRect(x: view.bounds.midX, y: view.bounds.midY, width: 0, height: 0)
broadcastAVC.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.init(rawValue: 0) // no arrow
}
しかし、それでも私にはうまくいきません。前述したように、これはリンゴ独自の Swift Playground アプリで発生するため、バグである必要があります。
修理済み:
上記のコードにこの行を追加するのを忘れていました
broadcastAVC.modalPresentationStyle = .popover