无法访问 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 内的分段控件