【问题标题】:Child view controller <JWPlayerKit.JWplayerViewController> should have parent view controller <RNSScreen> but actual parent is <UIViewController>子视图控制器 <JWPlayerKit.JWplayerViewController> 应该有父视图控制器 <RNSScreen> 但实际父级是 <UIViewController>
【发布时间】:2021-09-20 02:22:25
【问题描述】:

我正在尝试使用库 react-native-jw-media-player@0.2.0-beta.2 将 JWPlayer SDK v4 实现到 React Native ios 应用程序中。

如果播放器屏幕是应用程序加载时显示的初始屏幕,则播放器嵌入没有任何问题,但是当导航离开和返回播放器屏幕时(使用 react-navigation 选项卡),将引发以下异常:

Exception thrown while executing UI block: child view controller:<JWPlayerKit.JWPlayerViewController: 0x7fd744bab800> should have parent view controller:<RNSScreen: 0x7fd6db935310> but actual parent is:<UIViewController: 0x7fd745a057a0>

我是移动开发的新手(来自 React)并且已经花费了无数小时试图解决这个问题,但我没有得到任何帮助,非常感谢!

【问题讨论】:

  • 一个名为 RNSScreen 的类预计将作为 ViewController 强加。对你没有多大帮助,但误导性选择的名称方案必须经常导致误导性的编码错误。在 iOS 上,屏幕不是视图可能会对您有所帮助。
  • 您最终找到解决方案了吗?我有同样的问题吗?
  • @Cheyne 我在下面添加了我的解决方案。希望对您有所帮助!

标签: ios objective-c react-native jwplayer


【解决方案1】:

虽然它不是完全修复,但我设法通过创建隐藏的 &lt;JWPlayer&gt; 组件并将其添加到 App.js 来解决此问题。现在&lt;JWPlayer&gt; 的任何后续实例都可以按预期工作。

这是隐藏的播放器组件:

export default function HiddenPlayer() {
  const player = useRef(null);

  return (
    <View>
      <JWPlayer
        ref={player}
        style={styles.video}
        config={...config}
      />
    </View>
  );
}

const styles = StyleSheet.create({
  video: {
    display: 'none',
  },
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2014-08-14
    • 2013-06-05
    相关资源
    最近更新 更多