ios: Custom Segue between two viewcontrollers in landscape mode

У меня есть два 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?

14
задан toom 24 November 2011 в 17:49
поделиться