didSelectRowAtIndexPath下present新viewController,新viewController延迟出现问题

最近打算仿写微信的图片浏览器,效果如下,中间遇到了这样一个问题:


imageBrowser-竖屏.gif
imageBrowser-横屏.gif

一. 问题描述:

当在tableView的点击代理present新的viewController,
新的viewController- (void)viewWillAppear:(BOOL)animated会间隔2秒左右才调用。

代码如下所示:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    FJTestViewController *testViewController = [[FJTestViewController alloc] init];
    testViewController.hidesBottomBarWhenPushed = YES;
    [self presentViewController:testViewController animated:YES completion:nil];
}

二.解决方法

当加上[tableView deselectRowAtIndexPath:indexPath animated:NO];就不会有这种延迟。

三.原因

据我了解,deselectRowAtIndexPath函数的作用是取消选中状态。但具体这三者之间深层次的作用,我也不了解。
希望懂得的朋友能给出您宝贵的看法。

四. 最后

送上一张图片:

f37b40a98226cffcdf337d72bb014a90f703ea90.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容