IPhone SDK - Leaking Memory with performSelectorInBackground

似乎建议您实际上可以在后台线程中使用pushViewController。

但是我从stackoverflow的人那里得到警告,我不应该这样做。
例如。 (iphone) start timer from background thread?

pushViewController被认为是“UI更新”吗?
(因为我知道UI更新应该只在主线程中完成)

如果是这样
当viewController需要一段时间来加载,并且想要在加载时显示指示器时。
我有什么选择?

最佳答案

这里有几个策略。

1)在您进行推送之前,但是您知道自己将要进行推送时,请在当前 View 上显示一个合适的 Activity View 。我在某些应用程序中执行了此操作,在这些应用程序中,您单击表中的一行,但是插入 View 必须执行一些耗时的网络通讯,因此我将表单元格突出显示为蓝色,并在披露指示器的左侧添加了一个白色微调。效果很好。

2)使用延迟加载将新的 View Controller 快速显示在屏幕上,但是将繁重的代码推迟到加载完成之后,以便新 Controller 可以照看自己的 Activity View 。通过延迟加载,我的意思是您应该在init方法中做尽可能少的操作,并仔细使用viewdidload/viewwillappear/viewdidappear等来分散工作并尽快在屏幕上获得 Activity View 。

10-06 03:54