moreNavigationController

moreNavigationController

我在应用程序上使用选项卡栏(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/438381/

10-11 17:24