我有两个UIViewControllers,都在导航视图控制器中并处于横向模式。我想在两个uiviewcontroller之间切换而不需要像推一样进行动画。因此,如果用户在第一个视图控制器中单击按钮,则执行这两个之间的自定义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
我在storyboard中切换到了自定义segue,实际上它的工作正常。唯一的问题是第二个uiviewcontroller不是以横向模式而是纵向模式显示。如果我删除自定义segue并将其替换为push segue,则一切都正常工作,第二个viewcontroller会以横向模式显示。
那么,如果我使用自定义segue,我该怎么做才能使第二个viewcontroller也以横向视图显示?