在UITabBarController中的两个子视图控制器之间转换

时间:2013-06-30 13:08:12

标签: ios uitabbarcontroller containers transition childviewcontroller

我有UITabBarController作为我的应用的rootViewController,除了与此类UITabBarController的标签项对应的viewControllers之外,我还有两个viewControllers,其视图我想要成为某些标签项的子视图,正如我在this post中所解释的那样。这些视图的框架不会覆盖整个屏幕,我需要在选择不同的标签项时在它们之间切换。

我在Apple's documentation中发现可以在自定义容器视图控制器中为子视图控制器之间的转换设置动画,我甚至尝试使用此代码:

// First subview's view controller is  already a child
secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
secondViewController.view.frame = CGRectMake(0, y, secondViewController.view.frame.size.width, secondViewController.view.frame.size.height);
[self.window.rootViewController addChildViewController:secondViewController];
[firstViewController willMoveToParentViewController:nil];
[self.window.rootViewController transitionFromViewController:firstViewController
                                                toViewController:secondViewController
                                                        duration:0.4
                                                         options:UIViewAnimationOptionTransitionFlipFromLeft
                                                      animations:nil
                                                      completion:^(BOOL done){
                                                         [secondViewController didMoveToParentViewController:self.window.rootViewController];
                                                         [firstViewController removeFromParentViewController];
                                                      }];

但是,由于我的容器视图控制器不是自定义的,而是UITabBarController,因此不起作用。我没有找到任何这方面的例子,我怎么能做这个过渡?

谢谢!

1 个答案:

答案 0 :(得分:0)

创建一个新类作为UITabBarController的子类,而不是根据自己的需要调整自定义控制器类...