当导航栏和UIToolbar同时位于同一视图时出现奇怪问题。当向后滑动vc以返回屏幕上的firstvc时,导航栏上会出现奇怪的灰色框:
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.
同样是灰色的盒子。
答案 0 :(得分:1)
您不必创建工具栏并添加它。 UIViewController已经有一个工具栏,你可以使用它,而不会出现你所描述的这个问题。