Табличное представление должно вызвать scrollViewDidEndScrollingAnimation, когда прокрутка заканчивается. Попробуйте вставить толчок в этот метод:
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
if (weShouldPushSecondView)
{
weShouldPushSecondView = NO;
[[self navigationController] pushViewController:secondView animated:YES];
}
}
Возможно, вам потребуется использовать bool ivar, для которого вы установили значение YES сразу после selectRowAtIndexPath, поскольку scrollViewDidEndScrollingAnimation может вызываться в другое время для других прокруток.