一个标签栏控制器项目应该隐藏在iPhone应用程序
问题描述:
我正在开发一个应用程序,我正在使用标签栏控制器。当应用程序打开时,它应该只显示一个标签栏条目“餐馆”,当我从任何餐馆的菜单中选择一些食品时,则应该显示另一个标签栏视图控制器称为项目。请帮助我如何实现这一点。一个标签栏控制器项目应该隐藏在iPhone应用程序
在此先感谢。
答
这里有一个办法:
创建应用程序,只要你想,并确保当您添加
TabBarController
,应该只有一个标签项(删除其他项目是默认添加时加tabbarcontroller )创建
UITabBarController
分配类从脚本的所有控制器的新的子类,以及指派特定的故事板标识符
-
声明
BOOL
类型的全球属性(在用户违约或要维持)我在AppDelegate.h
- 从那里你想添加泰伯(显示)新标签
现在加入,添加代码,我的代码是:
- (IBAction)addNewTab:(id)sender { AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; appDelegate.isAddNew = TRUE; [self.tabBarController viewDidLoad]; }
-
然后转到您的自定义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.
}