我有一个包含5个TabBarItems的TabBarController,我想对这些项进行控制,所以我创建了一个扩展UITabBarController
的新类,并使其成为TabBarController <UITabBarControllerDelegate>
的委托然后我绑定故事板上的TabBarController与这个类,但我无法为任何UITabBarItem创建任何插座我也试图在viewWillAppear方法中打印每个TabBarItem的标题,如下所示:
-(void)viewWillAppear:(BOOL)animated{
for (int i=0; i<5; i++) {
UITabBarItem *tabItem=[self.tabBarController.tabBar.items objectAtIndex:i];
NSLog(@"Title:-------->%@",[tabItem title]);
}
}
但它会打印Null foreach项目标题,我该如何控制那些TabBarItems?
答案 0 :(得分:1)
问题在于您访问UITabBar
的方式。
正如您所说,您已将此代码放在继承自UITabBarController
的类中,然后您应该访问UITabBar
self.tabBar
而不是
self.tabBarController.tabBar
尝试使用这个有效的代码:
for(UITabBarItem *item in [self.tabBar items]) {
NSLog(@"Title: %@", [item title]);
}
以下是附加的示例项目。Project attached
答案 1 :(得分:0)
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
self.title = NSLocalizedString(@"Favorites", @"Favorites");
self.tabBarItem.image = [UIImage imageNamed:@"first"];
}
return self;
}