ios - 重用“昂贵”的 UIViewController
问题描述
我在 UIViewController(使用容器)中嵌入了 AVPlayerViewController(在资源方面很昂贵)。我需要在导航堆栈中随后推送的视图控制器中使用另一个 AVPlayerViewController,但如果我可以将它从父级中删除并将其嵌入到子级中,那就太好了。当孩子弹出时,我想将它嵌入到父母中。这样做的优雅方法是什么(代码或故事板)?
解决方案
您需要在代码中执行此操作。创建您的“昂贵”视图控制器并使用强引用将其存储在某处。您可以在任何地方以编程方式显示它,然后您可以将其关闭,但它将通过强引用存储。稍后您可以再次显示它。
PS看起来您查看控制器具有AVPlayer,在这种情况下,您可能需要添加一些方法来“擦除”其状态,然后再重用或暂停播放
推荐阅读
- java - 从 Java 中的文本文件中读取逗号分隔的值并从每行中找到最大数
- docker - Docker - /etc/hosts 何时在容器内创建或更新?
- maps - 标记未显示在正确位置
- django - 如何将我的生产应用程序数据复制到我的本地主机应用程序中
- roslyn - 如何在 Roslyn 中使用分析器和 CodeFixes
- ios - 为什么本地通知未针对 UNCalendarNotificationTrigger 触发
- c++ - 有没有办法将双精度数组从 VB 传递到 C++ dll 并返回修改后的数组?
- python - 在 Python 中查询 MongoDB 数组返回不匹配的部分
- hibernate - EntityManager refresh() 方法不刷新而是重置
- kotlin - Kotlin 调用 KMutableProperty 的 getter