2016-09-21 42 views
1

如何在iPad上展示RPBroadcastActivityViewController。ReplayKit RPBroadcastActivityViewController iPad

我使用的是标准的代码开始录制在iPhone,但在iPad上没有

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(... 
     } 
    } 

作品提出并应用一种冻结的。我一直在使用此功能的应用程序商店检查游戏,并且发现了相同的问题。

例如在游戏Tower Dash上按下iPad上的实时流按钮时不会显示任何内容,它仅适用于iPhone。

我一直在尝试播放popover演示文稿,但似乎没有任何工作。

我错过了什么吗?

更新:这似乎是一个错误。即使在苹果自己的Swift Playground应用程序中也会发生这种情况。

UPDATE2:苹果实际上已经回答了我的错误报告,并告诉我,我需要出示视图控制器上的iPad作为酥料饼像这样

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 
    } 

但是它仍然does not工作对我来说。正如我所提到的,这发生在苹果自己的Swift Playground应用程序上,所以它一定是一个bug。

修正:

忘了在上述

broadcastAVC.modalPresentationStyle = .popover 
+0

你写了一个错误报告吗? –

+0

是的,我做到了。我认为这肯定是一个错误,因为它也发生在他们自己的快速游乐场应用程序上。还没有从他们那里收到回复(28411422) – crashoverride777

+0

希望他们能尽快解决这个问题:) –

回答

1

你是对的,苹果的演示程序不包括这个小细节,但它不是一个错误。这是我用它来在iPad上运行的。 iPad需要弹出窗口来呈现视图,而弹出窗口需要锚点。我选择将它锚定到左边的BarButtonItem。

if let unwrappedPreview = preview { 
      unwrappedPreview.previewControllerDelegate = self 

      if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.phone { 
       self.present(unwrappedPreview, animated: true, completion: nil) 
      } 
      else { 
       unwrappedPreview.popoverPresentationController?.barButtonItem = self.navigationItem.leftBarButtonItem! 
       unwrappedPreview.modalPresentationStyle = UIModalPresentationStyle.popover 
       unwrappedPreview.preferredContentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height) 
       self.present(unwrappedPreview, animated: true, completion: nil) 

      } 
     } 
+0

嘿,感谢您的回答,任何想法为什么这不适合我?我已经这样做了(请参阅我的问题的更新2),它仍然无法正常工作,它与我用于UIActivityControllers的代码相同,它在那里工作 – crashoverride777

+1

固定。我忘了添加这行代码... modalPresentationStyle = .popover。谢谢你的帮助。 – crashoverride777

0

的iOS 10.1的β2中提到的代码添加此行仍然有同样的问题。

现在,我发现在iPad上呈现RPBroadcastActivityViewController的唯一方法是将其呈现在特征集合的水平紧凑环境中。

因此,在选择广播支持的应用程序之前,您可能需要告诉用户切换到分割视图模式,然后切换回全屏。回到全屏后,您可以使用RPBroadcastController.startBroadcast(handler:)开始播放。

+0

感谢您的答案。希望苹果很快就会修复它。 – crashoverride777