无法访问 UITabBar 内的 UITabBarItem(s)

Posted

技术标签:

【中文标题】无法访问 UITabBar 内的 UITabBarItem(s)【英文标题】:Unable to access UITabBarItem(s) inside UITabBar 【发布时间】:2014-02-28 04:04:47 【问题描述】:

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

【问题讨论】:

【参考方案1】:

问题在于您访问UITabBar 的方式。

正如你所说,你已经把这段代码放在从UITabBarController继承的类中,那么你应该访问UITabBar作为

self.tabBar

而不是

self.tabBarController.tabBar

尝试使用这个高效的代码:

for(UITabBarItem *item in [self.tabBar items]) 
    NSLog(@"Title: %@", [item title]);

这是附加的示例项目。Project attached

【讨论】:

【参考方案2】:
- (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;

【讨论】:

以上是关于无法访问 UITabBar 内的 UITabBarItem(s)的主要内容,如果未能解决你的问题,请参考以下文章

仅自动旋转 UITabBar 内的一些选项卡? (iOS 5)

通用应用程序中 UITabBar 内的 UISplitView 未更新详细信息视图

带有 TableView 的 UINavigationBar 和 UITabBar 内的分段控件

无法设置我的 UITabbar 的代表

iOS7 无法淡化 UIToolbar 或 UITabbar

在 UITabBar 中添加子视图