Ho due UIViewControllers contenuti in un controller della vista di navigazione e entrambi in modalità orizzontale. Voglio passare tra due controller uiview senza avere un'animazione come push. Pertanto eseguo una sequenza personalizzata tra questi due se l'utente fa clic sul primo viewcontroller su un pulsante.ios: Segmento personalizzato tra due viewcontrollers in modalità orizzontale
#import <Foundation/Foundation.h>
#import "AppDelegate.h"
@class AppDelegate;
@interface NonAnimatedSegue : UIStoryboardSegue {
}
@property (nonatomic,assign) AppDelegate* appDelegate;
@end
E questo l'attuazione:
#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
nello storyboard sono passato a segue personalizzato e in realtà funziona benissimo. L'unico problema è che il secondo controllore uiview non viene visualizzato in modalità orizzontale ma in protrait. Se rimuovo il seguito personalizzato e lo sostituisco con un push segue, allora tutto funziona bene, il secondo viewcontroller viene visualizzato in modalità orizzontale.
Quindi, cosa devo fare in modo che anche il secondo viewcontroller sia in visualizzazione orizzontale se utilizzo la mia sequenza personalizzata?
Sei un bellissimo essere umano. –