У меня есть два UIViewControllers, которые содержатся в контроллере просмотра navigatoin и оба в ландшафтном режиме. Я хочу переключиться между двумя uiviewcontroller, не имея анимации, такой как push. Поэтому я выполняю пользовательский segue между этими двумя, если пользователь нажимает кнопку первого контроля на кнопку.
#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 не отображается в ландшафтном режиме, а в protrait. Если я удаляю пользовательский segue и заменяю его на push segue, тогда все работает нормально, второй viewcontroller отображается в альбомном режиме.
Итак, что мне нужно сделать, чтобы второй viewcontroller также был в ландшафтном представлении, если я использую свой пользовательский segue?