Cocoa touch 如何在tableViewController完成导航堆栈上的推送动画时获得通知

Cocoa touch 如何在tableViewController完成导航堆栈上的推送动画时获得通知,cocoa-touch,ios4,Cocoa Touch,Ios4,我正在用pushViewController:animated:将UITableViewController推到UINavigationController上。我希望在动画结束时收到通知,以便我可以使用selectRowAtIndexPath滚动并高亮显示给定行。 如何设置未显式调用的动画的代理 在将selectRowAtIndexPath:animated:scrollPosition:方法推送到导航控制器的堆栈上之前,您是否尝试过调用该方法(通过tableView属性)?我不知道如何设置推送

我正在用
pushViewController:animated:
UITableViewController
推到
UINavigationController
上。我希望在动画结束时收到通知,以便我可以使用
selectRowAtIndexPath
滚动并高亮显示给定行。

如何设置未显式调用的动画的代理

在将selectRowAtIndexPath:animated:scrollPosition:方法推送到导航控制器的堆栈上之前,您是否尝试过调用该方法(通过tableView属性)?

我不知道如何设置推送动画的委托。以下是一个简单的解决方法:

子类
UITableViewController
。覆盖
viewdide:
以在短时间延迟后调用“后期动画”方法

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self performSelector:@selector(scrollToAndHighlightCurrentRow) withObject:nil afterDelay:0.4];
}    

对这是我所知道的,但是滚动动画在推送动画完成的同时或之前完成。我想让用户知道他们正在滚动到某一行,只要在推送动画完成后启动滚动(和突出显示)动画即可。哦,太好了。因此,只有在推送动画完成后才会调用
viewdide
?太好了,成功了。谢谢。当隐藏视图的障碍物被移除时,也会调用
viewdide:
方法。例如,如果将另一个视图推到表视图的顶部,则当您弹出该视图时,将再次调用表视图控制器的
viewdide:
方法。有关后续问题,请参阅。