ios在内存中保持视图

Posted

技术标签:

【中文标题】ios在内存中保持视图【英文标题】:ios keep view in memory 【发布时间】:2013-10-24 00:33:00 【问题描述】:

我正在创建一个播放音乐的应用程序,并为专辑封面和进度条提供漂亮的 UI。问题是当用户离开播放器视图并返回时,播放器 UI 必须重新加载,并且在调整进度条大小并加载专辑封面时您会看到闪烁。

当您离开控制器时,有什么方法可以将项目保存在内存中?与您在 iPhone 音乐应用程序上的播放列表和播放器视图之间切换的方式类似,在查看艺术作品或歌曲进度时没有延迟或延迟,从一开始就存在。

还是我想错了?

【问题讨论】:

【参考方案1】:

我假设您使用UINavigationController 来回移动,如果是这样,则默认行为是视图控制器将在您返回时释放,因为对它的唯一强引用是在UINavigationController 堆栈中,当它被弹出时,引用丢失,因此你的控制器被释放。

如果您想避免这种情况,您需要做的就是让任何其他对象对您的视图控制器具有强引用。一种简单的方法是在初始化控制器时,在该类中具有一个强大的属性,该属性包含对您不想丢失的视图控制器的引用。

希望对您有所帮助。

【讨论】:

谢谢,我确实在它初始化的控制器的标题中强烈引用了视图控制器,但它似乎没有任何效果。不过,也许我分配/初始化不正确。

以上是关于ios在内存中保持视图的主要内容,如果未能解决你的问题,请参考以下文章

推送到另一个视图后,如何让这个 ios 按钮在提要视图中保持可见?

iOS 中的状态栏保持在最后一个方向视图中

关闭 ViewController 后,我的视图保持在 iOS7 中以前的视图控制器方向

iOS - 如何推送到视图控制器并在返回时保持正确的“视图堆栈”

iOs - 将uiview插入代码中的另一个视图,保持约束

在ios中保持视图控制器的第一个状态