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

Posted

技术标签:

【中文标题】在 UITabBarController 中的两个子视图控制器之间转换【英文标题】:Transitioning between two child view controllers within a UITabBarController 【发布时间】:2013-06-30 13:08:12 【问题描述】:

我有一个UITabBarController 作为我的应用程序的rootViewController,除了与UITabBarController 的选项卡项对应的视图控制器之外,我还有两个视图控制器,它们的视图我只想成为一个子视图对于某些选项卡项目,正如我在 this post 中解释的那样。那些view的frame并没有覆盖整个屏幕,我需要在选择不同的tab item时在它们之间切换。

我在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】:

创建一个新类作为 UITabBarController 的子类,而不是让您的自定义控制器类适应您的需求...

【讨论】:

您的意思是,创建一个简单地是UITabBarController 子类的自定义类?我无法让它工作...... 我会的。由于我试图在其视图具有相同框架的两个视图控制器之间切换,是否有可能只有一个视图控制器,而不是动画两个视图控制器之间的过渡,动画内容的变化一个视图控制器的视图? 是的,但是当您切换到另一个选项卡并再次返回时,您必须检查是否获得了预期的结果...

以上是关于在 UITabBarController 中的两个子视图控制器之间转换的主要内容,如果未能解决你的问题,请参考以下文章

使用 UITabBarController 和 UINavigationController 的最佳方式

如何在两个由UITabBarController分隔的视图控制器之间传递数据?

从单独的 UIViewController 切换 UITabBarController 选项卡[重复]

iOS 5 中的 UITabBar 高度

嵌入在 NavigationController 中的 UITabBarController

UITabBarController 问题中的 UINavigationController