带有UINavigationController的UIToolbar在动画期间导航栏上的灰色框

时间:2014-05-11 11:32:07

标签: ios uinavigationcontroller uinavigationbar uitoolbar uiviewanimationtransition

当导航栏和UIToolbar同时位于同一视图时出现奇怪问题。当向后滑动vc以返回屏幕上的firstvc时,导航栏上会出现奇怪的灰色框:

Image

Animation

UIViewController *firstvc = [[UIViewController alloc] init];
firstvc.view.backgroundColor = [UIColor whiteColor];
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 523, 320, 45)];
[firstvc.view addSubview:toolbar];

UIViewController *secondvc = [[UIViewController alloc] init];
secondvc.view.backgroundColor = [UIColor whiteColor];

UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:firstvc];
[nvc pushViewController:secondvc animated:NO];

当我更改工具栏的半透明属性时,一切都按预期工作,但我不喜欢这个解决方案 - UIToolbar意图是半透明的。我相信这是在UINavigationController的视图上使用UIToolbar的常用方法。我做错了什么?

UPDATE :UINavigationController有一个很棒的属性叫做toolbar,它在屏幕底部添加了工具栏。但是,问题主要是关于如何一起使用UIToolbar和UINavigationController。例如,我使用屏幕顶部的工具栏开发了一个复杂的视图,其中包括一个自定义的UITextField。当用户在视图上选择某些内容时,会弹出另一个具有本机导航栏的视图控制器。在这种特殊情况下,我遇到了同样的问题,除了禁用第一个视图控制器工具栏的半透明属性外别无选择。

Here the animation that can express my idea.

同样是灰色的盒子。

1 个答案:

答案 0 :(得分:1)

您不必创建工具栏并添加它。 UIViewController已经有一个工具栏,你可以使用它,而不会出现你所描述的这个问题。