无法访问UITabBar中的UITabBarItem

时间:2014-02-28 04:04:48

标签: objective-c cocoa-touch ios7 uitabbaritem

我有一个包含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?

2 个答案:

答案 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;
}