我在应用程序上使用选项卡栏(UITabBarController),并且希望自定义单击更多按钮时出现的表的外观。
我已经解决了如何通过设置来更改更多屏幕上导航栏的外观
self.moreNavigationController.navigationBar.barStyle
在UITabBarController的子类中,我设法通过修改来更改表格的背景色
self.moreNavigationController.topViewController.view.backgroundColor
,但是我无法解决如何更改表格中出现的单元格中的字体颜色。
我希望我可以使用
self.moreNavigationController.topViewController.view.visibleCells
但这似乎总是空的。我尝试在viewDidLoad,viewWillAppear和viewDidAppear中执行此操作,但未成功。对象self.moreNavigationController.topViewController的类型为UIMoreListController,该对象似乎没有记录,并且我看不到任何对我有帮助的界面。
有任何想法吗?
最佳答案
仅在显示moreNavigationController之后才填充visibleCells。
并且这些单元格是在运行时创建的,因此,即使您更改单元格的内容,它们也会在显示时被替换。
可以尝试的一件事是替换moreNavigationController tableView的数据源,调用原始数据源的cellForRowAtIndexPath并在返回它之前更改其内容。
使用下面的代码,在显示moreNavigationController对其进行一次初始化之后,您将看到返回到moreNavigationController时,单元格为红色,但立即返回白色背景。
UITableView *view = (UITableView *)self.tabBarController.moreNavigationController.topViewController.view;
if ([[view subviews] count]) {
for (UITableViewCell *cell in [view visibleCells]) {
cell.backgroundColor = [UIColor redColor];
}
}
关于ios - 自定义标签栏上的“更多”菜单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54542244/