动态更改UITabBarItem的标题

sau*_*abh 5 iphone cocoa-touch uitabbarcontroller

我的tabbar中有9个标签...我想从一些视图控制器更改所有标题.我做了如下:

for (int i=0; i(less than)[appDelegate.tabBarController.viewControllers count]; i++) {
  UIViewController *uv=[appDelegate.tabBarController.viewControllers objectAtIndex:i];
  uv.tabBarItem.title=@"test";
}
Run Code Online (Sandbox Code Playgroud)

它会立即更改所有可见选项卡的标题,但不会更多地用于标签...

但是,如果我点击更多nav cntrl中的编辑按钮,它会显示更改的名称.还......很奇怪......如果我选择一些标签,那么所有的标签都会反映新名称
为什么会这样呢???

XJo*_*nes 1

根据 Apple 文档,需要在将项目添加到栏之前更改 UIBarItem(UITabBarItem 的超类)的标题。看起来 iOS 会在项目添加到栏后缓存标题,因此您会遇到不可预测的行为。

来自 UIBarItem 类参考:

title
项目上显示的标题。

@property(nonatomic, 复制) NSString *title

讨论
您应该在将项目添加到栏之前设置此属性。默认值为 nil。