У меня есть два UIViewControllers, которые содержатся в контроллере навигационного представления и оба в ландшафтном режиме. Я хочу переключаться между двумя UiviewController без анимации типа push. Поэтому я выполняю пользовательский переход между ними, если пользователь нажимает на кнопку в первом контроллере представления.
#import <Foundation/Foundation.h>
#import "AppDelegate.h"
@class AppDelegate;
@interface NonAnimatedSegue : UIStoryboardSegue {
}
@property (nonatomic,assign) AppDelegate* appDelegate;
@end
А это реализация:
#import "NonAnimatedSegue.h"
@implementation NonAnimatedSegue
@synthesize appDelegate = _appDelegate;
-(void) perform{
self.appDelegate = [[UIApplication sharedApplication] delegate];
UIViewController *srcViewController = (UIViewController *) self.sourceViewController;
UIViewController *destViewController = (UIViewController *) self.destinationViewController;
[srcViewController.view removeFromSuperview];
[self.appDelegate.window addSubview:destViewController.view];
self.appDelegate.window.rootViewController=destViewController;
}
@end
В раскадровке я переключился на пользовательский segue, и на самом деле он работает отлично. Единственная проблема в том, что второй uiviewcontroller отображается не в ландшафтном режиме, а в портретном. Если я удалю пользовательский segue и заменю его на push segue, то все работает нормально, второй контроллер отображается в ландшафтном режиме.
Так что же я должен сделать, чтобы второй контроллер просмотра также отображался в ландшафтном режиме, если я использую свой пользовательский segue?