Skip to content

Instantly share code, notes, and snippets.

@acoomans
Last active December 14, 2015 15:08
Show Gist options
  • Save acoomans/5105181 to your computer and use it in GitHub Desktop.
Save acoomans/5105181 to your computer and use it in GitHub Desktop.
Container view controller
#pragma mark - container view controller
- (CGRect)frameForContentViewController:(UIViewController*)contentViewController {
return self.view.bounds;
}
- (void)addContentViewController: (UIViewController*)contentViewController; {
[self addChildViewController:contentViewController];
contentViewController.view.frame = [self frameForContentViewController:contentViewController];
[self.view addSubview:contentViewController.view];
[contentViewController didMoveToParentViewController:self];
}
- (void)removeContentViewController:(UIViewController*)contentViewController {
[contentViewController willMoveToParentViewController:nil];
[contentViewController.view removeFromSuperview];
[contentViewController removeFromParentViewController];
}
- (void)transitionFromViewController:(UIViewController*)oldViewController
toViewController:(UIViewController*)newViewController
{
[oldViewController willMoveToParentViewController:nil];
[self addChildViewController:newViewController];
newViewController.view.frame = [self frameForContentViewController:newViewController];
newViewController.view.alpha = 0.0;
[self transitionFromViewController:oldViewController
toViewController:newViewController
duration:0.25
options:0
animations:^{
oldViewController.view.alpha = 0.0;
newViewController.view.alpha = 1.0;
}
completion:^(BOOL finished) {
[oldViewController removeFromParentViewController];
[newViewController didMoveToParentViewController:self];
}];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment