首页 > 解决方案 > 重用“昂贵”的 UIViewController

问题描述

我在 UIViewController(使用容器)中嵌入了 AVPlayerViewController(在资源方面很昂贵)。我需要在导航堆栈中随后推送的视图控制器中使用另一个 AVPlayerViewController,但如果我可以将它从父级中删除并将其嵌入到子级中,那就太好了。当孩子弹出时,我想将它嵌入到父母中。这样做的优雅方法是什么(代码或故事板)?

标签: iosuiviewcontrolleruistoryboardavplayerviewcontroller

解决方案


您需要在代码中执行此操作。创建您的“昂贵”视图控制器并使用强引用将其存储在某处。您可以在任何地方以编程方式显示它,然后您可以将其关闭,但它将通过强引用存储。稍后您可以再次显示它。

PS看起来您查看控制器具有AVPlayer,在这种情况下,您可能需要添加一些方法来“擦除”其状态,然后再重用或暂停播放


推荐阅读