У меня была эта проблема, и я решил ее с помощью пользовательского перехода, чтобы представить контроллер представления. Просто создайте новый класс на основе UIStoryboardSegue.
Вот мой заказ
.h файл:
#import <UIKit/UIKit.h>
@interface BRTrackNotesSegue : UIStoryboardSegue
@end
.m файл
@implementation BRTrackNotesSegue
- (void) perform {
UIViewController *src = (UIViewController *) self.sourceViewController;
UIViewController *dst = (UIViewController *) self.destinationViewController;
[UIView transitionWithView:src.navigationController.view duration:0.50
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
[src.navigationController pushViewController:dst animated:NO];
}
completion:NULL];
}
@end
В конструкторе интерфейса выберите segue и задайте для класса Segue имя вашего пользовательского segue.
Второй контроллер представления содержит следующее для отклонения с той же анимацией:
- (IBAction)done:(id)sender {
[UIView transitionWithView:self.navigationController.view
duration:0.50
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:nil
completion:nil];
[self.navigationController popViewControllerAnimated:NO];
}