【问题标题】:How to check if a TabBar item is already present before adding at run time?如何在运行时添加之前检查 TabBar 项是否已经存在?
【发布时间】:2013-06-07 04:39:11
【问题描述】:

我有一个标签栏项目,开头有一个标签,视图控制器有按钮。如果点击了一个按钮 - 一个特定的视图控制器应该被添加到 tabbarcontroller/tab 项中。但是每次我按下按钮时,都会添加相同的视图控制器/选项卡项目(相同的多个选项卡项目)。我试图为一个 Viewcontroller 限制一个选项卡项,无论该按钮被点击多少次。任何帮助,将不胜感激。

 -(IBAction) buttontap:id(sender){
UITableViewController*TableView = [mainStoryBoard instantiateViewControllerWithIdentifier:@"Table A"];
       TableView.title = @"Table A";

 NSMutableArray *TabBarItems = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers];


if ([self.tabBarController.tabBarItem.title.description isEqualToString:@"Table A"])
    {
  [TabBarItems addObject:nil];

  }
 else
  {
  [TabBarItems addObject:TableView];
    TableView.tabBarItem.image = [UIImage imageNamed:@"contents.png"];

 }
    [self.tabBarController setViewControllers:TabBarItems];

 }

【问题讨论】:

    标签: ios uitabbarcontroller uitabbar uitabbaritem


    【解决方案1】:

    您可以像这样在头文件中声明 Tableview:

    UITableViewController *TableView;
    

    现在您可以检查 Viewcontroller 是否已经存在:

    if(!TableView){
        //your code here
        //instantiate TableView ad add it to the TabBar.
    
    }
    

    那样,它只会在第一个 buttonTap 上执行。

    编辑:

    当然,这需要您为每个按钮声明一个 ViewController。 更动态的方法是使用您创建的可变数组,并使用 -(BOOL)isEqual: 将每个项目与新创建的 viewController 进行比较:

    UITableViewController*TableView = [mainStoryBoard instantiateViewControllerWithIdentifier:@"Table A"];
    NSMutableArray *TabBarItems = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers];
    BOOL found = NO;
    for (UIViewController *vc in TabBarItems){
        if([vc isEqual:TableView]){
             found=YES;
        }
    }
    if(!found){
        [TabBarItems addObject:TableView];
         TableView.tabBarItem.image = [UIImage imageNamed:@"contents.png"];
        [self.tabBarController setViewControllers:TabBarItems];
    
    }
    

    现在您可以添加更多按钮,而无需在标题中添加更多变量。 玩得开心。

    【讨论】:

      猜你喜欢
      • 2010-12-21
      • 2011-11-16
      • 1970-01-01
      • 2013-06-14
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多