这是我的问题。 我有一个应用程序使用UITabBar,并在一些视图上的一些NavigationControllers,和酒吧都是黑色不透明。由于我有超过6个选项卡,它打开UIMoreListController,到目前为止,我可以更改导航栏的颜色。 我的问题是当用户点击编辑按钮来组织moreListController上的工具栏。标题栏(我不知道它是一个工具栏还是导航栏)是蓝色的。我想将其改为黑色不透明。任何人都知道如何去做? 此致敬礼! Marcelo Marsson。UIMoreListController编辑modalViewController工具栏(或导航栏)颜色变化
0
A
回答
0
我做这在以前的项目(但是,我必须强调应用程序从未发布)通过实施UITabBarControllerDelegate
协议,该方法具体为:
- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers
{
UIView *editView = [[[self.tabBarController view] subviews] objectAtIndex:1];
UINavigationBar *modalNavBar = [[editView subviews] objectAtIndex:0];
[modalNavBar setBarStyle:UIBarStyleBlack];
}
当然,这是极其容易因为我假设这些索引的子视图数组中的项目是我所期望的。
如果您要尝试这种方法,我会谨慎行事,并在继续前进行尽可能多的检查。在访问特定索引之前检查数组的界限 - 检查这些索引中的对象是否响应您要发送给它们的方法,等等。
同样,我不认为我可以推荐这种方法用于运输应用程序,但我不知道有任何其他方式在iOS 5之前通过它的UI自定义API来执行此操作。
0
第一个答案完美的作品,但我想要一些检查... 这样,最糟糕的事情可能发生(除了苹果不批准该应用程序)是该栏不会改变颜色。 谢谢Jasarien的指导!
- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers
{
//Prepara a variavel que vai armazenar a view;
UIView* edtView=nil;
for (int i=0; i<[[[self.tabBarController view] subviews]count]; i++) {
//checa se a subview é da classe esperada...
if ([NSStringFromClass([[[[self.tabBarController view] subviews] objectAtIndex:i]class]) isEqualToString:@"UITabBarCustomizeView"])
{
//Beleza... quebra o laço...
NSLog(@"Achei!! sou eu do Indice %d",i);
edtView=[[[self.tabBarController view] subviews] objectAtIndex:i];
break;
}
}
//Se nao achar a variavel, sabe-se lá deus por que, sai do método.
if (edtView==nil) {
return;
}
//Pega a NavigationBar
UINavigationBar *modalNavBar = nil;
for (int i=0; i<[[edtView subviews]count]; i++) {
//checa se a subview é da classe esperada...
if ([[[edtView subviews]objectAtIndex:i]isKindOfClass:[UINavigationBar class]])
{
//Beleza... quebra o laço...
NSLog(@"Achei!! sou eu do Indice %d",i);
modalNavBar=[[edtView subviews]objectAtIndex:i];
break;
}
}
//checa se a navBar existe
if (modalNavBar==nil) {
return;
}
//muda a cor da navBar!!!
[modalNavBar setBarStyle:UIBarStyleBlack];
}
0
有改变所有的导航栏样式,而不是单独改变每一个或设置代表们使用TabBar或其他任何一个更简单的方法:
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];
只需设置该代码的一个你的初始意见。有了这个,更多的导航控制器和配置导航控制器(在点击更多导航控制器中的“编辑”后出现)可以获得不同的风格。像这样,您可以将其颜色更改为不同的颜色或更改背景图像。
希望这会有所帮助。
相关问题
- 1. 导航栏颜色变化 - 如何
- 2. 设置工具栏的颜色和导航栏后退按钮
- 3. 状态栏颜色不变根据导航栏的颜色
- 4. Jquery - 导航栏上的导航栏颜色变化不会反转
- 5. 导航栏的HTML颜色
- 6. Bootstrap 4导航栏颜色
- 7. 默认导航栏颜色
- 8. 导航栏颜色问题
- 9. 导航栏字体颜色
- 10. Bootstrap导航栏背景颜色不变
- 11. 在twitter引导中编辑导航栏文本颜色
- 12. 麻烦编辑颜色引导移动友好导航栏
- 13. Twitter引导程序导航栏按钮颜色变化悬停
- 14. 色调导航图标在工具栏
- 15. iPad标题栏。导航栏或工具栏?
- 16. Android编辑导航栏
- 17. DotNetNuke编辑导航栏
- 18. 改变颜色为Android的工具栏
- 19. 工具栏项目颜色
- 20. 阴影变色导航栏
- 21. 搜索栏在导航栏中改变颜色
- 22. 状态栏和导航栏颜色不会改变
- 23. UiBarButtonItem没有工具栏或导航条
- 24. 以编程方式更改状态栏颜色等于导航栏颜色
- 25. 如何更改导航工具栏的颜色
- 26. 添加到工具栏导航控制器 - 颜色失配
- 27. 工具栏显示导航栏内部
- 28. 工具栏和导航栏坏动画
- 29. 点击导航栏上的颜色改变颜色
- 30. 将导航栏颜色混合到背景颜色(渐变?)
它的工作原理!因为做一些检查,我稍微改变了一点。 – Marsson
请注意!我无愧于自己的一切责任! ;) – Jasarien
大声笑...我做了一些变化和检查当然...张贴... – Marsson