Tengo dos UIViewControllers que están contenidos en un controlador de vista de navegación y ambos en modo apaisado. Quiero cambiar entre dos uiviewcontroller sin tener una animación como push. Por lo tanto, realizo una transición personalizada entre estos dos si el usuario hace clic en el primer controlador de vista en un botón.ios: Segue personalizado entre dos viewcontrollers en modo apaisado
#import <Foundation/Foundation.h>
#import "AppDelegate.h"
@class AppDelegate;
@interface NonAnimatedSegue : UIStoryboardSegue {
}
@property (nonatomic,assign) AppDelegate* appDelegate;
@end
Y esto la aplicación:
#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
En el guión gráfico que me pasa a segue a medida y en realidad funciona bien. El único problema es que el segundo uiviewcontroller no se muestra en modo apaisado sino en protrait. Si elimino la segue personalizada y la reemplazo con un segue de inserción, entonces todo funciona bien, el segundo controlador de vista se muestra en modo apaisado.
Entonces, ¿qué tengo que hacer para que el segundo controlador de vista también esté en la vista horizontal si uso mi segue personalizado?
Usted es un ser humano hermoso. –