0

添加 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];
}
4

1 回答 1

0

对于 a 的选中图像和未选中图像UITabBarItem,它有两个属性,即finishedSelectedImagefinishedUnselectedImage。但是您根本无法设置这些属性,因为它们没有为它们定义任何 setter 方法,只有 getter。

相反,你可以做这样的事情。假设“tab_1_unselImg”是您未选择的选项卡图像,“tab_1_selImg”是选项卡栏控制器第一个选项卡的选定选项卡。

[[[[self.tabBarController viewControllers] objectAtIndex:0] tabBarItem] 
setFinishedSelectedImage:tab_1_selImg withFinishedUnselectedImage:tab_1_unselImg];
于 2013-08-01T12:49:44.217 回答