![](/img/trans.png)
[英]How do I change the background color of a view controller managed by a UIPageViewController?
[英]Change the background color of “More” view controller
是否可以在UITabBarController的“更多”导航控制器中使用图像或以其他方式更改单元格的背景颜色?
这些链接都不是这个问题的答案。 似乎Malakim指的是UITabBarController
MoreViewController,并且不想更改标签栏颜色,而是希望更改MoreViewController的tableView的单元格。
答案很简单。 您可以引用tabBarController的moreViewController属性,该属性将为您提供对UIMoreNavigationController
实例的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];
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];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.