- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我一直不太清楚应该分配给 viewDidLoad
还是 viewWillAppear
的任务类型:在 UIViewController
子类中.
例如我正在做一个应用程序,其中有一个 UIViewController
子类访问服务器、获取数据、将其提供给 View 然后显示该 View 。在 viewDidLoad
和 viewWillAppear
中这样做的优缺点是什么?
最佳答案
viewDidLoad 是你必须做一次的事情。每次出现 View 时都会调用 viewWillAppear。你应该做你只需要在 viewDidLoad 中做一次的事情——比如设置你的 UILabel 文本。但是,您可能希望在每次用户查看 View 时修改 View 的特定部分,例如每次您转到“正在播放” View 时,iPod 应用程序都会将歌词滚动回顶部。
但是,当您从服务器加载内容时,您还必须考虑延迟。如果您将所有网络通信打包到 viewDidLoad 或 viewWillAppear 中,它们将在用户看到 View 之前执行 - 可能会导致您的应用程序短暂卡住。首先向用户展示一个带有某种事件指示器的未填充 View 可能是个好主意。当您完成您的网络时,这可能需要一两秒钟(或者甚至可能会失败 - 谁知道呢?),您可以使用您的数据填充 View 。在各种 Twitter 客户端中可以看到有关如何完成此操作的很好示例。例如,当您在 Twitterrific 中查看作者详细信息页面时,该 View 只会显示“正在加载...”,直到网络查询完成。
关于ios - UIViewController viewDidLoad 与 viewWillAppear : What is the proper division of labor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1579550/
我一直不太清楚应该分配给 viewDidLoad 还是 viewWillAppear 的任务类型:在 UIViewController 子类中. 例如我正在做一个应用程序,其中有一个 UIViewCo
我是一名优秀的程序员,十分优秀!