自定义UITabBar中的More UIBarButtonItem
Posted
技术标签:
【中文标题】自定义UITabBar中的More UIBarButtonItem【英文标题】:Customize the More UIBarButtonItem in UITabBar 【发布时间】:2012-08-27 23:08:57 【问题描述】:从 ios 5 开始,Apple 提供了一个 API 来自定义 UITabBar
对象中的 UITabBarItems
。我特指以下选择器:
setFinishedSelectedImage:withFinishedUnselectedImage:
这一切都适用于常规按钮,但我似乎无法自定义“更多”按钮以匹配其他按钮的样式。这就是我正在做的事情:
tabBarController.viewControllers = tabBarControllerArray;
tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackColor];
UITabBarItem *more = tabBarController.moreNavigationController.tabBarItem;
if ([more respondsToSelector:@selector(setFinishedSelectedImage:withFinishedUnselectedImage:)])
[more setFinishedSelectedImage:[UIImage imageNamed:@"BarIcon-More.png"]
withFinishedUnselectedImage:[UIImage imageNamed:@"BarIcon-More.png"]
];
else
more.image = [UIImage imageNamed:@"BarIcon-More.png"];
结果如下,没有拾取我自定义的More图片。
我已经看到了许多替换更多按钮的技巧,但是必须有更好的方法来做到这一点吗?
【问题讨论】:
【参考方案1】:解决方案很愚蠢。
我认为moreNavigationController
中的UITabBarItems
是只读的,但事实并非如此。所以只需执行以下操作:
tabBarController.moreNavigationController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"More" image:[UIImage imageNamed:@"BarIcon-More.png"] tag:0];
和上面一样的自定义代码也可以工作。
【讨论】:
这似乎不适用于 iOS 6。在 more 控制器上设置tabBarItem
属性没有任何作用。我可以在调试器检查之前和之后跨过分配行并且它不会改变。还有其他解决方案吗?以上是关于自定义UITabBar中的More UIBarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章
monotouch 中的自定义 uitabbar,类似于语音备忘录应用程序
UITabBar项过多时如何自定义出现的UINavigationBar?