Судя по вашему коду, похоже, что вы пытаетесь открыть текущий контроллер вида, а затем сразу же снова его нажать, с анимацией в обоих направлениях. Я не могу себе представить, почему вы хотите это сделать, но, отложив это на мгновение, вот как вы можете заставить это работать.
Сначала добавьте <UINavigationControllerDelegate>
к объявлению @interface. Тогда:
- (void)repushViewController {
self.navigationController.delegate = self;
[[self navigationController] popViewControllerAnimated:YES];
}
- (void)navigationController:(UINavigationController *)navController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
navController.delegate = nil;
VideoPlayerViewController *videoPlayer = [[VideoPlayerViewController alloc] init];
[videoPlayer setMedia:media];
[navController pushViewController:videoPlayer animated:YES];
[videoPlayer release];
}