typedef NS_ENUM(NSInteger,fangxiang){//模拟动画的方向
left,
top,
right,
bottom,
situ,
};
//宏定义
#define SCREEN_RECT ([UIScreen mainScreen].bounds)
#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)
//具体实现方法
+ (void)switchRootVC:(UIViewController *)vc nowVC:(UIViewController *)SVC fangxiang:(fangxiang)fangxiang{
CGRect rect;
switch (fangxiang) {
case left:
rect = CGRectMake(SCREEN_WIDTH, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
break;
case top:
rect = CGRectMake(0, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT);
break;
case right:
rect = CGRectMake(-SCREEN_WIDTH, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
break;
case bottom:
rect = CGRectMake(0, -SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT);
break;
default:
rect = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
break;
}
[UIView animateWithDuration:0.2 animations:^{
SVC.view.frame = rect;
} completion:^(BOOL finished) {
if (finished) {
[UIApplication sharedApplication].keyWindow.rootViewController = vc;
}
}];
}
//调用方法,举例:
ADViewController *vc = [[ADViewController alloc]init];
[method switchRootVC:vc nowVC:self.navigationController fangxiang:left];
待续~~~