29

当我构建一个针对 iOS 5 或 6 的应用程序,但在 iOS 7 上运行它时,就会出现这个问题。如果我在作为 tabBarController 一部分的 navigationController 中有一个控制器,我会执行以下操作:

controller.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:testController animated:YES];

出现奇怪的垂直定位动画。相反,我希望新控制器(隐藏底部栏)在导航控制器上推送或弹出,将标签栏推出或带回,并且没有垂直定位更改。

问题视频:https ://dzwonsemrish7.cloudfront.net/items/0K2z1J3U2H3w033G0k23/hidesBottomBarWhenPushed.mov

打开雷达报告:http ://www.openradar.me/14670329

4

6 回答 6

2

您可以随时从 UIView 中删除动画

[self.view.layer removeAllAnimations];

干杯

于 2014-03-25T11:32:37.697 回答
0

尝试这个:

[self.navigationController.navigationBar setHidden:NO];
于 2014-03-28T13:59:56.653 回答
0

如果要保持透明度,请将其添加到 root UIViewController

- (void)viewWillAppear:(BOOL)animated {
    [UIView animateWithDuration:0.35f animations:^{
        self.tabBarController.tabBar.alpha = 1.0f;
    }];
}

- (void)viewWillDisappear:(BOOL)animated {
    [UIView animateWithDuration:0.35f animations:^{
        self.tabBarController.tabBar.alpha = 0.0f;
    }];
}

这样,您将获得一个漂亮的标签栏淡入/淡出动画。

于 2014-08-08T11:05:28.750 回答
-1

Just set the translucent property to NO for both navigation bar and tabBarController. This will solve your problem.

于 2014-07-30T10:12:01.137 回答
-1

这说你应该把:

self.navigationController.navigationBar.translucent = NO;

按照这个链接

于 2014-07-03T05:57:13.900 回答
-1

尝试这个

if( [self respondsToSelector:@selector(setEdgesForExtendedLayout:)] )
{
    self.edgesForExtendedLayout=UIRectEdgeNone;
}
于 2014-05-08T06:31:21.393 回答