From bf24fe65d844fbbc1ad2d35855b17744bbeefe5b Mon Sep 17 00:00:00 2001 From: Helen Olhausen Date: Fri, 15 May 2015 15:00:19 -0300 Subject: [PATCH] Add Appearance Behavior Add Appearance Behavior to XLPagerTabStripViewController (+1 squashed commit) Squashed commits: [cb18fc4] Update XLPagerTabStripViewController.m Call viewWillAppear --- .../XLPagerTabStripViewController.m | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/XLPagerTabStrip/XL/Controllers/XLPagerTabStripViewController.m b/XLPagerTabStrip/XL/Controllers/XLPagerTabStripViewController.m index 11ffcf2..9b6dcf6 100644 --- a/XLPagerTabStrip/XL/Controllers/XLPagerTabStripViewController.m +++ b/XLPagerTabStrip/XL/Controllers/XLPagerTabStripViewController.m @@ -283,26 +283,30 @@ [childViewControllers enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { UIViewController * childController = (UIViewController *)obj; CGFloat pageOffsetForChild = [self pageOffsetForChildIndex:idx]; - if (fabs(self.containerView.contentOffset.x - pageOffsetForChild) < CGRectGetWidth(self.containerView.bounds)){ - if (![childController parentViewController]){ + if (fabs(self.containerView.contentOffset.x - pageOffsetForChild) < CGRectGetWidth(self.containerView.bounds)) { + if (![childController parentViewController]) { // Add child + [childController beginAppearanceTransition:YES animated:NO]; [self addChildViewController:childController]; - [childController didMoveToParentViewController:self]; + CGFloat childPosition = [self offsetForChildIndex:idx]; [childController.view setFrame:CGRectMake(childPosition, 0, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.containerView.bounds))]; childController.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; + [self.containerView addSubview:childController.view]; - } - else{ + [childController didMoveToParentViewController:self]; + [childController endAppearanceTransition]; + } else { CGFloat childPosition = [self offsetForChildIndex:idx]; [childController.view setFrame:CGRectMake(childPosition, 0, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.containerView.bounds))]; childController.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; } - } - else{ - if ([childController parentViewController]){ - [childController.view removeFromSuperview]; + } else { + if ([childController parentViewController]) { // Remove child [childController willMoveToParentViewController:nil]; + [childController beginAppearanceTransition:NO animated:NO]; + [childController.view removeFromSuperview]; [childController removeFromParentViewController]; + [childController endAppearanceTransition]; } } }];