基于视图的应用程序中的Tabbar项不起作用

时间:2012-02-04 12:42:22

标签: iphone ios uitabbar

我在基于视图的应用程序中通过nib创建了一个带有三个项目的tabbar 我希望在视图出现时默认选择第一个项目。

问题是item1显示已选中,但它没有加载它有权执行的视图。当我们点击该项目时,视图就会出现。请帮我解决这个问题。这是我的代码......

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    tabBar.delegate = self;
    [tabBar setSelectedItem:[tabBar.items objectAtIndex:0]];
}

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    NSLog(@"didSelectItem: %d", item.tag);
    if (item.tag==1) {
        ImagesOverlay=[[UIView alloc]initWithFrame:CGRectMake(0, 210, 320, 250)];
        ImagesOverlay.backgroundColor=[UIColor grayColor];
        [self.view addSubview:ImagesOverlay];
    }else if (item.tag==2) {
        relatedOverlay=[[UIView alloc]initWithFrame:CGRectMake(0, 210, 320, 250)];
        relatedOverlay.backgroundColor=[UIColor redColor];  
        [self.view addSubview:relatedOverlay];
    }else if(item.tag==3){
        //other condition
    }
}

2 个答案:

答案 0 :(得分:1)

刚刚完成..

   -(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
tabBar.delegate = self;
[tabBar setSelectedItem:[tabBar.items objectAtIndex:0]];
[self activateTab:1];
 }

- (void)activateTab:(int)index {
switch (index) {
    case 1:
    //condition
    break;
    case 2:
   //condition
    break;
    default:
        break;
}
 }

  - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
NSLog(@"didSelectItem: %d", item.tag);
[self activateTab:item.tag];    
  }

答案 1 :(得分:0)

您似乎需要对UITabBarController的工作方式进行更多研究。您应该传递UIViewController的实例,而不是手动更改视图。阅读课程参考:

https://developer.apple.com/library/ios/#documentation/uikit/reference/UITabBarController_Class/Reference/Reference.html