IOS中pushViewController:的卡顿问题

题记:在项目中遇到过这样一个问题:点击tableview的一个cell,需要跳转到下一个控制器,这个时候在tableview界面卡顿约1s才进入控制器页面。针对这个问题,我做了排查,最终定位出问题所在,也涨了知识,在此记录之。


首先,在tableview的didSelectRowAtIndexPath:方法中有push控制器:

[self.navigationController pushViewController:assetsVc animated:NO];

一般情况下push控制器没什么问题,关键在于,在assetsVc控制器中有一个动作执行需要800ms时间。

经过测试,把这个耗时的方法分别放在viewDidLoad、viewDidAppear里面,tableview均会卡顿。

问题思考:assetsVc里面的耗时操作为什么会使tableview卡顿?


经过试验发现,从tableview向assetsVc的页面跳转动作发生在assetsVc页面加载完成之后,也就是说,在assetsVc执行完viewWillLoad、viewDidLoad、viewWillAppear、viewDidAppear、viewWillLayoutSubviews、viewDidLayoutSubviews之后,页面才会跳转。


解决办法:

为了提升用户体验,让刚才说的耗时操作异步执行就可以了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值