Простите, если я полностью неправильно понял этот вопрос, но кажется, что вы просто хотите сделать простое горизонтальное переключение между двумя контроллерами представления. И даже если вы уже поняли это, возможно, это поможет кому-то еще, у кого такой же вопрос.
(1) В вашей раскадровке (в которой есть ViewController A & B) создайте модальный переход от A до B. Дайте ему идентификатор (showViewControllerB) и выберите Transition: Flip Horizontal.
Настраиваем протокол и делегатов:
(2a) В ViewControllerB.h добавьте выше @interface:
@class ViewControllerB;
@protocol ViewControllerBDelegate
- (void)viewControllerBDidFinish:(ViewControllerB *)controller;
@end
(2b) Добавить делегата как свойство:
@property (weak, nonatomic) id <ViewControllerBDelegate> delegate;
(3a) В ViewControllerB.m синтезируют:
@synthesize delegate;
(3b) И делегировать метод, чтобы перевернуть обратно:
- (IBAction)flipBack:(id)sender
{
[self.delegate viewControllerBDidFinish:self];
}
(4) В ViewControllerA.h добавить в самом верху #import "ViewControllerB.h"
и в конце @interface <ViewControllerBDelegate>
(5a) В ViewControllerA.m добавить метод для соответствия протоколу:
- (void)viewControllerBDidFinish:(ViewControllerB *)controller
{
[self dismissModalViewControllerAnimated:YES];
}
(5b) Затем установите его в качестве делегата в prepareForSegue:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showViewControllerB"]) {
[[segue destinationViewController] setDelegate:self];
}
}
Надеюсь, это ответит на ваш вопрос. Если я неправильно понял, просто дайте мне знать.