建议 - 底部导航处理

时间:2017-08-28 19:24:16

标签: ios tabbar

我是iOS新手,我有标签栏。我有4个标签,如Facebook。

在我的情况下,当用户进入其中一个屏幕时,应该随时从服务器更新所有数据。

一个人说经常调用viewDidLoad会导致内存泄漏。这是真的吗?

那么这里最好的比赛是什么?每次调用viewDidLoad()并从服务器加载数据,或者有另一种处理方法,而不是每次都调用viewDidLoad()

屏幕上没有拉动刷新

plunker

1 个答案:

答案 0 :(得分:2)

只有在第一次加载视图控制器时才会调用

viewDidLoad()。使用标签栏控制器通常会在用户切换标签时将视图控制器保留在内存中,因此如果您希望每次用户进入新屏幕时都进行加载,那么这不是最佳选择。

我建议使用viewWillAppearviewDidAppear。如果您要从网络更新数据,请确保在后台线程上进行加载以确保接口不会被阻止(无论您使用哪种方法)。

就我个人而言,我会将网络加载代码放在viewDidAppear内,因为在视图完成后调用网络更有意义,因为它可能不会立即完成。通过这种方式,还可以更轻松地呈现显示正在向用户加载数据的UI元素。