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

四. 最后

送上一张图片:

didSelectRowAtIndexPath下present新viewController,新viewController延迟出现问题_第1张图片
f37b40a98226cffcdf337d72bb014a90f703ea90.jpg

你可能感兴趣的:(didSelectRowAtIndexPath下present新viewController,新viewController延迟出现问题)