如何将“更多”标签栏的编辑视图的导航栏设置为黑色?
Posted
技术标签:
【中文标题】如何将“更多”标签栏的编辑视图的导航栏设置为黑色?【英文标题】:How to set the "more" tab bar's edit view's navigation bar black? 【发布时间】:2011-11-22 01:28:46 【问题描述】:我正在尝试设置所有标签栏的导航栏 UIBarStyleBlack。
我也可以通过以下方式为“更多”标签栏实现这一点:
tabBarController.moreNavigationController.navigationBar.barStyle = UIBarStyleBlack;
问题在于,当您单击其顶部的编辑按钮来自定义选项卡时,它会显示一个带有标准蓝色导航栏的新模式控制器,而我无法设置它 UIBarStyleBlack。
【问题讨论】:
找到这个页面link 似乎我可以捕捉到实现此选项卡栏委托方法的模态编辑视图 - (void)tabBarController:(UITabBarController *)controller willBeginCustomizingViewControllers:(NSArray *)viewControllers 【参考方案1】:该链接有一个稍微老套的解决方案,涉及到监听模式视图何时出现。
Colouring fun with moreNavigationController
直到 ios5+ 使我们能够以更清洁的方式做到这一点。
【讨论】:
在主要应用程序中完成并没有被拒绝 -> 工作正常。 这并不是真的那么 hacky。这不像您在调配或使用私有 API。无论如何,只是想评论一下,所有这些都可以在 iOS 5 及更高版本上使用 UIAppearance 完成。【参考方案2】:Swift - 自定义 Tabbar -> 更多菜单 -> 编辑视图(导航栏和内容视图)。
override func tabBar(_ tabBar: UITabBar, willBeginCustomizing items: [UITabBarItem])
for (index, subView) in view.subviews.enumerated()
subView.backgroundColor = UIColor.black
if index == 1
subView.tintColor = UIColor.green
for customSubView in subView.subviews
if let navBar = customSubView as? UINavigationBar
navBar.isTranslucent = false
navBar.barTintColor = UIColor.black
navBar.tintColor = .white
这对我有用。
【讨论】:
【参考方案3】:Sublcas UITabBarController
并覆盖这些方法:
- (void)tabBar:(UITabBar *)tabBar willEndCustomizingItems:(NSArray<UITabBarItem *> *)items changed:(BOOL)changed
self.moreNavigationController.navigationBar.barStyle = UIBarStyleBlack;
- (void)tabBar:(UITabBar *)tabBar didBeginCustomizingItems:(NSArray<UITabBarItem *> *)items
self.moreNavigationController.navigationBar.barStyle = UIBarStyleDefault;
【讨论】:
以上是关于如何将“更多”标签栏的编辑视图的导航栏设置为黑色?的主要内容,如果未能解决你的问题,请参考以下文章