Mam dwa kontrolery UIView, które są zawarte w kontrolerze nawigacyjnym i oba w trybie poziomym. Chcę przełączać się między dwoma kontrolerami uiview bez animacji takiej jak push. Dlatego wykonuję niestandardową zmianę między tymi dwoma, jeśli użytkownik kliknie pierwszy przycisk kontrolny widoku.ios: Custom Segue między dwoma kontrolerami widoku w trybie poziomym
#import <Foundation/Foundation.h>
#import "AppDelegate.h"
@class AppDelegate;
@interface NonAnimatedSegue : UIStoryboardSegue {
}
@property (nonatomic,assign) AppDelegate* appDelegate;
@end
I to realizacja:
#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
W serii ujęć przeszedłem do niestandardowego segue i faktycznie to działa dobrze. Jedynym problemem jest to, że drugi kontroler uiview nie jest wyświetlany w trybie poziomym, ale w trybie protrait. Jeśli usunę niestandardowy segue i zastąpię go segmentem push, wtedy wszystko działa poprawnie, drugi viewcontroller wyświetla się w trybie poziomym.
Co muszę zrobić, aby drugi kontroler widoku był również w widoku poziomym, jeśli używam niestandardowego segue?
Jesteś piękny człowiek. –