是否可以使用图像或以其他方式更改UITabBarController的“更多”导航控制器中单元格的背景颜色?
答案 0 :(得分:6)
这些链接都不是这个问题的答案。似乎Malakim指的是UITabBarController
的MoreViewController,并且不想更改tabbar颜色,而是更改构成MoreViewController的tableView的单元格。
答案很简单。您可以引用tabBarController的moreViewController属性,该属性将为您提供对UIMoreNavigationController
实例的引用。
UINavigationController* moreNavController = myTabController.moreViewController;
使用此导航控制器,您可以获得根视图控制器的视图,因为这是保存tableView的内容。实际上,根视图控制器是UITableViewController
,访问它的视图直接抓取tableView!
UITableView* moreView = ((UIViewController*)[moreNavController.viewControllers objectAtIndex:0]).view;
//可能需要在此投放以禁止警告
并且你们去了,moreView引用了你感兴趣的hee tableView。然后你可以使用moreView.subviews进行深入研究,或者像moreView.backgroundColor = [UIColor uglyColor];
那样进行丑陋的背景颜色改变
答案 1 :(得分:1)
Steve给出的方法工作正常,但当我尝试将moreNavController的视图设置为表视图时,它给了我警告。
warning: incompatible Objective-C types initializing 'struct UIView *', expected 'struct UITableView *'
所以为了删除警告,我尝试了下面的代码并且它有效,不确定它是正确的方式
UINavigationController* moreNavController = self.tabBarController.moreNavigationController; UIViewController* moreViewController = [moreNavController.viewControllers objectAtIndex:0]; moreViewController.view.backgroundColor = [UIColor redColor];