自定义MoreNavigationController的单元格

时间:2015-09-27 04:24:02

标签: ios swift uitabbarcontroller

我正在尝试制作更多视图以匹配我的应用主题

enter image description here

表格单元格不会改变背景颜色。我已经尝试了几乎所有的答案和互联网上的博客。

tabBarController?.moreNavigationController.topViewController?.view.backgroundColor = UIColor.blackColor()

我已使用上面的代码来实现图像中显示的当前场景。

override func viewDidLoad() {
    self.homeTableView.registerNib(UINib(nibName: "Banner", bundle: nil), forCellReuseIdentifier: "Banner")
    self.homeTableView.registerNib(UINib(nibName: "Heading", bundle: nil), forCellReuseIdentifier: "Heading")
    self.homeTableView.registerNib(UINib(nibName: "ThumblessList", bundle: nil), forCellReuseIdentifier: "ThumblessList")
    self.homeTableView.registerNib(UINib(nibName: "MapCell", bundle: nil), forCellReuseIdentifier: "MapCell")
    self.homeTableView.registerNib(UINib(nibName: "CallButton", bundle: nil), forCellReuseIdentifier: "CallButton")
    self.searchBar.showsCancelButton = true
    self.edgesForExtendedLayout = UIRectEdge.None
    self.extendedLayoutIncludesOpaqueBars = false
    self.automaticallyAdjustsScrollViewInsets = false
    tabBarController?.moreNavigationController.topViewController?.view.backgroundColor = UIColor.blackColor()
}

2 个答案:

答案 0 :(得分:2)

这是一个非常晚的答案,但我无法在网上找到这个问题的单一解决方案,即使设置表视图的颜色和UITabBarController的moreNavaigationController中的单元格应该是你可以在故事板。我觉得这是Swift / xcode devs的疏忽。

那就是说,viewDidAppear的{​​{1}}方法:

UITabBarController

如果您使用override func viewDidAppear(_ animated: Bool) { if let moreTableView = moreNavigationController.topViewController?.view as? UITableView { moreTableView.backgroundColor = UIColor.YOURCOLOUR for cell in moreTableView.visibleCells { cell.backgroundColor = UIColor.YOURCOLOUR } } } 方法执行此代码,则此代码无效。我希望这段代码可以帮助那些正在努力寻找解决方案的人!

答案 1 :(得分:0)

我最终创建了一个新的视图控制器并将其添加为iPhone的第5个标签项。对于Ipads,我创建了一个没有新视图控制器的单独故事板。

谢谢:) Sworoop