淡入淡出更换 rootViewController

在用户引导页完成之后,往往需要切换回正式的 rootViewController,尝试了几种方案,这种效果是最理想的

- (void)restoreRootViewController:(UIViewController *)rootViewController
{
 typedef void (^Animation)(void);
 UIWindow* window = self.window;
  
 rootViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
 Animation animation = ^{
  BOOL oldState = [UIView areAnimationsEnabled];
  [UIView setAnimationsEnabled:NO];
  window.rootViewController = rootViewController;
  [UIView setAnimationsEnabled:oldState];
 };
  
 [UIView transitionWithView:window
       duration:0.5f
        options:UIViewAnimationOptionTransitionCrossDissolve
     animations:animation
     completion:nil];
}


你可能感兴趣的:(淡入淡出更换 rootViewController)