我的代码如下所示:
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];
现在它动画滚动/选择行并同时推动视图控制器。我想要它做的是等到它完成滚动/选择,然后推动视图控制器。有没有办法做到这一点?感谢
答案 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:
委托方法中推送视图控制器?动画完成后应该调用该方法。