首页 > 解决方案 > swift segue new viewcontroller 在后台加载其他任务时卡住

问题描述

目前,我有一个基于 API 加载的 UItableview。当点击一个单元格时,它会继续(显示 egpush)到另一个视图控制器。它在第一次 API 调用后显示所有单元格,然后调用其他 API 并加载其他数据(这需要一段时间并且还大量使用 cpu),但加载时滚动似乎很流畅。但是,当没有完全加载时,如果我单击一个单元格并弹出另一个 viewController,整个应用程序会冻结片刻。(新的 viewController 显示了所有内容,只是没有响应)有没有解决方案?我现在能想到的是通过一次加载更少的单元来减少 CPU 负载。

标签: iosswiftuitableviewsegue

解决方案


通常你不会想要这样做:

“加载其他数据(这需要一段时间并且还大量使用 cpu)”

更好的解决方案是不要调用您的第二次调用来获取所有数据,而只需获取显示在您正在使用的下一个视图控制器上所需的数据。通常通过在 API 调用中传递 ID 来完成。因此,在您的 tableviews 上,didSelectRowAt您将进行 api 调用以获取特定于下一个屏幕所需的数据,然后进行 segue。

如果由于服务器端的限制而无法做到这一点,那么您将需要链接前两个调用。意思是在您拥有所有数据之前甚至不显示表格视图单元格。


推荐阅读