iPhone:在推动viewcontroller之前等待selectrow动画结束?

时间:2010-03-13 21:59:54

标签: iphone xcode uitableview animation

我的代码如下所示:

NSIndexPath *ip = [NSIndexPath indexPathForRow:15 inSection:0];
[[self tableView] selectRowAtIndexPath:ip animated:YES scrollPosition:UITableViewScrollPositionMiddle];

// Pause needed here until animation finishes

[[self navigationController] pushViewController:secondView animated:YES];

现在它动画滚动/选择行并同时推动视图控制器。我想要它做的是等到它完成滚动/选择,然后推动视图控制器。有没有办法做到这一点?感谢

2 个答案:

答案 0 :(得分:2)

滚动结束时,tableview应调用scrollViewDidEndScrollingAnimation。尝试推进该方法:

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
    if (weShouldPushSecondView)
    {
        weShouldPushSecondView = NO;
        [[self navigationController] pushViewController:secondView animated:YES];
    }
}

您可能需要使用在selectRowAtIndexPath之后设置为YES的bool ivar,因为其他滚动可能会在其他时间调用scrollViewDidEndScrollingAnimation。

答案 1 :(得分:0)

您是否有理由不在-tableView:didSelectRowAtIndexPath:委托方法中推送视图控制器?动画完成后应该调用该方法。