From 4f83950a1d9cefc024f339a66d69f9d6c89e699a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Gra=CC=88tzer?= Date: Thu, 12 Jul 2012 10:39:11 +0200 Subject: [PATCH] behavior update --- Source/SGTabsViewController.m | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Source/SGTabsViewController.m b/Source/SGTabsViewController.m index 36ec700..31e3c3f 100644 --- a/Source/SGTabsViewController.m +++ b/Source/SGTabsViewController.m @@ -121,22 +121,22 @@ - (void)addTab:(UIViewController *)viewController { context:NULL]; + [self.currentViewController viewWillDisappear:YES]; // Add tab selects automatically the new tab [UIView transitionWithView:self.view duration:kAddTabDuration options:UIViewAnimationOptionAllowAnimatedContent animations:^{ [self.tabsView addTab:viewController.title]; - if (self.currentViewController) { - [self.currentViewController viewWillDisappear:YES]; [self.currentViewController.view removeFromSuperview]; - [self.currentViewController viewDidDisappear:YES]; } - _currentViewController = viewController; [self.view addSubview:viewController.view]; } completion:^(BOOL finished){ + [self.currentViewController viewDidDisappear:YES]; + _currentViewController = viewController; + if (_toobarVisible) [self.toolbar setItems:self.currentViewController.toolbarItems animated:YES]; [viewController didMoveToParentViewController:self]; @@ -201,17 +201,17 @@ - (void)removeViewController:(UIViewController *)viewController index:(NSUIntege if (self.tabContents.count == 0) {//View controller was the last one [viewController willMoveToParentViewController:nil]; _currentViewController = nil; + [viewController viewWillDisappear:NO]; [UIView transitionWithView:self.tabsView duration:kRemoveTabDuration options:UIViewAnimationOptionAllowAnimatedContent animations:^{ - [viewController viewWillDisappear:NO]; [viewController.view removeFromSuperview]; - [viewController viewDidDisappear:NO]; [self.tabsView removeTab:index]; [self.toolbar setItems:nil animated:NO]; } completion:^(BOOL finished){ + [viewController viewDidDisappear:NO]; [viewController removeFromParentViewController]; }]; return; @@ -220,10 +220,12 @@ - (void)removeViewController:(UIViewController *)viewController index:(NSUIntege } UIViewController *to = [self.tabContents objectAtIndex:index]; + to.view.frame = self.contentFrame; if (_toobarVisible) [self.toolbar setItems:to.toolbarItems animated:YES]; [viewController willMoveToParentViewController:nil]; + [viewController viewWillDisappear:YES]; [UIView transitionWithView:self.view duration:kRemoveTabDuration options:UIViewAnimationOptionAllowAnimatedContent @@ -231,16 +233,13 @@ - (void)removeViewController:(UIViewController *)viewController index:(NSUIntege [self.tabsView removeTab:oldIndex]; if (self.currentViewController == viewController) { - [viewController viewWillDisappear:YES]; [viewController.view removeFromSuperview]; - [viewController viewDidDisappear:YES]; - self.tabsView.selected = index; - to.view.frame = self.contentFrame; [self.view addSubview:to.view]; } } completion:^(BOOL finished){ + [viewController viewDidDisappear:YES]; [viewController removeFromParentViewController]; _currentViewController = to; }];