其他可添加6个标签的解决方案
对于超过5个标签我使用过CiExpandableTabBarController 问题是: 如果我添加CiExpandableTabBarController像这样: self.window.rootViewController = CiExpandableTabBarController; 那就没问题..
但我需要在第二个视图和视图之后添加它。 我的第一个视图是登录,所以首先,视图标签栏应该是可见的
现在我得到这样的输出:
未显示选定的tebbar项目图像
但我希望输出像这样:
我添加了这样的标签栏:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self makeTabBar];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
//==============
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
if([UIScreen mainScreen].bounds.size.height == 568)
{
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
}
else
{
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_3" bundle:nil];
}
} else {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
}
UINavigationController *nvc=[[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController=nvc;
[nvc setNavigationBarHidden:YES];
// self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
-(void)makeTabBar
{
// self.tabBarController=[[UITabBarController alloc] init];
// self.tabBarController.customizableViewControllers = nil;
ProductSearchViewController *homeObj;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
if([UIScreen mainScreen].bounds.size.height == 568)
{
homeObj=[[ProductSearchViewController alloc] initWithNibName:@"ProductSearchViewController" bundle:nil];
}
else
{
homeObj=[[ProductSearchViewController alloc] initWithNibName:@"ProductSearchViewController_3" bundle:nil];
}
}
else
{
homeObj=[[ProductSearchViewController alloc] initWithNibName:@"ProductSearchViewController~ipad" bundle:nil];
}
UINavigationController *tab1Controller = [[UINavigationController alloc] initWithRootViewController:homeObj];
tab1Controller.title=@"Product Seach";
tab1Controller.tabBarItem.image=[UIImage imageNamed:@"productsearch.png"];
WhereToBuyViewController *chatListObj;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
if([UIScreen mainScreen].bounds.size.height == 568)
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController" bundle:nil];
}
else
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController_3" bundle:nil];
}
}
else
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController~ipad" bundle:nil];
}
UINavigationController *tab2Controller = [[UINavigationController alloc] initWithRootViewController:chatListObj];
tab2Controller.title=@"Where To Buy";
tab2Controller.tabBarItem.image=[UIImage imageNamed:@"wheretobuy.png"];
//===========tab3
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
if([UIScreen mainScreen].bounds.size.height == 568)
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController" bundle:nil];
}
else
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController_3" bundle:nil];
}
}
else
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController~ipad" bundle:nil];
}
UINavigationController *tab3Controller = [[UINavigationController alloc] initWithRootViewController:chatListObj];
tab3Controller.title=@"Where To Buy";
tab3Controller.tabBarItem.image=[UIImage imageNamed:@"wheretobuy.png"];
//====================tab4
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
if([UIScreen mainScreen].bounds.size.height == 568)
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController" bundle:nil];
}
else
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController_3" bundle:nil];
}
}
else
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController~ipad" bundle:nil];
}
UINavigationController *tab4Controller = [[UINavigationController alloc] initWithRootViewController:chatListObj];
tab4Controller.title=@"Where To Buy";
tab4Controller.tabBarItem.image=[UIImage imageNamed:@"wheretobuy.png"];
//==============tabtab5
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
if([UIScreen mainScreen].bounds.size.height == 568)
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController" bundle:nil];
}
else
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController_3" bundle:nil];
}
}
else
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController~ipad" bundle:nil];
}
UINavigationController *tab5Controller = [[UINavigationController alloc] initWithRootViewController:chatListObj];
tab5Controller.title=@"Where To Buy";
tab5Controller.tabBarItem.image=[UIImage imageNamed:@"wheretobuy.png"];
//=========================tab 6
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
if([UIScreen mainScreen].bounds.size.height == 568)
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController" bundle:nil];
}
else
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController_3" bundle:nil];
}
}
else
{
chatListObj=[[WhereToBuyViewController alloc] initWithNibName:@"WhereToBuyViewController~ipad" bundle:nil];
}
UINavigationController *tab6Controller = [[UINavigationController alloc] initWithRootViewController:chatListObj];
tab6Controller.title=@"Where To Buy";
tab2Controller.tabBarItem.image=[UIImage imageNamed:@"wheretobuy.png"];
//=======================
CiExpandableTabBarController *tabbar=[[CiExpandableTabBarController alloc] initWithViewControllers:[NSArray arrayWithObjects:tab1Controller,tab2Controller,tab3Controller,tab4Controller,tab5Controller,tab6Controller, nil] andSelectedIndex:0];
[self.window addSubview:tabbar.view];
}
答案 0 :(得分:0)
对于UITabBarItem
的所选图像和未选择图像,它有两个属性,即finishedSelectedImage
和finishedUnselectedImage
。但是你根本无法设置这些属性,因为它们没有为它们定义任何setter方法,只有getter。
相反,你可以做这样的事情。假设'tab_1_unselImg'是未选中的标签图像,'tab_1_selImg'用于标签栏控制器第一个标签的选定标签。
[[[[self.tabBarController viewControllers] objectAtIndex:0] tabBarItem]
setFinishedSelectedImage:tab_1_selImg withFinishedUnselectedImage:tab_1_unselImg];