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/54542244/

10-11 04:28