一个标签栏控制器项目应该隐藏在iPhone应用程序

问题描述:

我正在开发一个应用程序,我正在使用标签栏控制器。当应用程序打开时,它应该只显示一个标签栏条目“餐馆”,当我从任何餐馆的菜单中选择一些食品时,则应该显示另一个标签栏视图控制器称为项目。请帮助我如何实现这一点。一个标签栏控制器项目应该隐藏在iPhone应用程序

在此先感谢。

这里有一个办法:

  1. 创建应用程序,只要你想,并确保当您添加TabBarController,应该只有一个标签项(删除其他项目是默认添加时加tabbarcontroller )

  2. 创建UITabBarController

  3. 分配类从脚本的所有控制器的新的子类,以及指派特定的故事板标识符

  4. 声明BOOL类型的全球属性(在用户违约或要维持)我在AppDelegate.h

  5. 从那里你想添加泰伯(显示)新标签

    现在加入,添加代码,我的代码是:

    - (IBAction)addNewTab:(id)sender 
    { 
        AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
        appDelegate.isAddNew = TRUE; 
        [self.tabBarController viewDidLoad]; 
    } 
    
  6. 然后转到您的自定义tabbarcontroller(在一步创建2 - >的UITabBarController子类),我的班级.h

    #import <UIKit/UIKit.h> 
    
    @interface TabViewController : UITabBarController 
    
    @end 
    

而且.m

#import "TabViewController.h" 
#import "AppDelegate.h" 
#import "ViewController2.h" 
#import "ViewController3.h" 

@interface TabViewController() 
{ 
    AppDelegate *appDelegate; 
} 
@end 

@implementation TabViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 

    if (appDelegate.isAddNew == TRUE) 
    { 
     ViewController2 *view2 = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController2"]; 
     //ViewController3 *view3 = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController3"]; 

     NSMutableArray *tabViewControllers = [self.viewControllers mutableCopy]; // [[NSMutableArray alloc] init]; 
     [tabViewControllers addObject:view2]; 
     //[tabViewControllers addObject:view3]; 

     [self setViewControllers:tabViewControllers]; 

     //can't set this until after its added to the tab bar 

     // ------ First way ------ 
     view2.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Second" image:[UIImage imageNamed:@"selectimg.png"] tag:1]; 

     // ------ Second way ------ 
     view2.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Second" image:[UIImage imageNamed:@"deselectimg"] selectedImage:[UIImage imageNamed:@"selectimg.png"]]; 

     // ------ Third way ------ 
     view2.tabBarItem = [[UITabBarItem alloc] init]; 
     view2.tabBarItem.selectedImage = [[UIImage imageNamed:@"selectimg.png”]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
     view2.tabBarItem.image = [[UIImage imageNamed:@"deselectimg.png”]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 
     view2.tabBarItem.title = @"Second"; 

     //view3.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Third" image:[UIImage imageNamed:@"third.png"] tag:2]; 

     [appDelegate.window setRootViewController:self]; 
    } 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
}