我使用Storyboard构建了我的应用程序。我有一个UITabBarController和一个NavigationController嵌入它。 我正在尝试使用淡色定制我的应用程序,并设法为Tabbar设置自定义颜色。我能够从rootViewController访问tabbar,但我无法访问导航栏。无论如何,我可以轻松访问这个? 我的AppDelegate代码示例如下。
由于
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
self.tabBarController = (UITabBarController*)self.window.rootViewController;
UITabBar *tabBar = self.tabBarController.tabBar;
[tabBar setSelectedImageTintColor:[UIColor greenColor]];
tabBar.tintColor = [UIColor colorWithRed:0.4 green:0.522 blue:0.129 alpha:1];
//This bit doesnt work
UINavigationController *navCon = self.tabBarController.navigationController;
navCon.navigationBar.tintColor = [UIColor colorWithRed:0.384 green:0.259 blue:0.161 alpha:1];
return YES;
}
答案 0 :(得分:2)
如果您正在使用导航控制器,则希望它们嵌入由标签栏控制器管理的视图控制器。
尝试NSLog(@"%@", [self.tabBarController viewControllers]);
,看看它是否列出了导航控制器或自定义控制器。例如,我创建了两个由我的标签栏触发的视图控制器,一个带有导航,一个没有导航,上面一行显示:
(
"<UINavigationController: 0x6a35f20>",
"<SecondViewController: 0x6a39500>" )
所以,我可以把我当作[[self.tabBarController viewControllers] objectAtIndex:0]
。
答案 1 :(得分:2)
假设您没有使用IBOutlet,我建议您可以将它们与XIB文件一起使用。例如,在头文件中:
IBOutlet UINavigationBar *aNavBar;
然后在.m中,切换:
UINavigationController *navCon = self.tabBarController.navigationController;
navCon.navigationBar.tintColor = [UIColor colorWithRed:0.384 green:0.259 blue:0.161 alpha:1];
使用:
[aNavBar setTintColor:[UIColor colorWithRed:0.384 green:0.259 blue:0.161 alpha:1]];
你去吧!我快速做了这个,告诉我它是否有效 - 贾斯汀A.