如何在不隐藏TabBar的情况下呈现具有自下而上动画的UIViewController

时间:2011-12-16 15:08:20

标签: ios uikit uitabbar modalviewcontroller

所以,我有一个UITabbarController,其中包含UINavigationController。按下按钮,我想引入另一个UINavigationController,像使用presentModalViewController:animated:时一样动画,但我不希望它隐藏TabBar。

UIKit(3.1.3及更高版本)中是否有任何可用于此的内容或我是否必须自己制作动画?

2 个答案:

答案 0 :(得分:4)

只需测试代码,如果您需要navigationController,可能需要将property设置为pushViewController:animated:

UIViewController * aViewController = [[UIViewController alloc] init];
[aViewController.view setFrame:self.view.frame];
[aViewController.view setBackgroundColor:[UIColor redColor]];

UINavigationController * navigationController = [[UINavigationController alloc] initWithRootViewController:aViewController];
[aViewController release];
[navigationController.view setFrame:CGRectMake(0.0f, 480.0f, 320.0f, 480.0f)];
[self.navigationController.view addSubview:navigationController.view];

[UIView animateWithDuration:0.3f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveLinear
                 animations:^{
                     [navigationController.view setFrame:CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)];
                 }
                 completion:nil];
[navigationController release];

答案 1 :(得分:1)

默认情况下,自下而上呈现内容的唯一方法是presentModalViewController。你实际上可以覆盖navigationController的动画,但是你不能通过调用不同的方法来实现,你必须创建自己的动画,并处理动画。

可能欺骗这种情况的另一种方法是在你以模态方式呈现的视图中重新加载tabBar,但这可能会变得混乱。