如何以编程方式添加UITabBarController(无xib文件或故事板)

我想添加一个UITabBarController到我的应用程序。 但是我只能用代码来做。 没有xib文件或故事板。 任何人都可以告诉我如何通过代码完全做到这一点?

编辑:

 _tbc = [[UITabBarController alloc] init]; aboutUsView = [[AboutUsView alloc] init]; helpView = [[HelpView alloc] init]; optionsView = [[OptionsView alloc] init]; self.navCon = [[UINavigationController alloc] initWithRootViewController:optionsView]; [self setnavigationCon:self.navCon]; [optionsView setdataLayer:self]; if ([navCon.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) { UIImage *image = [UIImage imageNamed:@"Navigation Bar_reduced.png"]; [self.navCon.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; [optionsView addSelfView:window]; } _tbc.viewControllers = [NSArray arrayWithObjects:navCon, aboutUsView, helpView, nil]; [window addSubview:_tbc.view]; 

尝试这个

 AppDelegate.h @interface AppDelegate : UIResponder <UITabBarControllerDelegate> @property (strong, nonatomic) UITabBarController *tabBarController; AppDeleGate.m UINavigationController *nc1; nc1 = [[UINavigationController alloc] init]; [nc1.navigationBar setTintColor:[UIColor blackColor]]; UIViewController *viewController1 = [[[FirstScreen alloc] initWithNibName:@"FirstScreen_ipad" bundle:nil] autorelease]; nc1.viewControllers = [NSArray arrayWithObjects:viewController1, nil]; UINavigationController *nc2; nc2 = [[UINavigationController alloc] init]; [nc2.navigationBar setTintColor:[UIColor blackColor]]; UIViewController *viewController2 = [[[FullList alloc] initWithNibName:@"FullList_ipad" bundle:nil] autorelease];; nc2.viewControllers = [NSArray arrayWithObjects:viewController2, nil]; UIViewController *viewController3 = [[[FavouriteView alloc] initWithNibName:@"FavouriteView_ipad" bundle:nil] autorelease]; UINavigationController *nc3; nc3 = [[UINavigationController alloc] init]; [nc3.navigationBar setTintColor:[UIColor blackColor]]; nc3.viewControllers = [NSArray arrayWithObjects:viewController3, nil]; UIViewController *viewController4 = [[[UpcomingFights alloc] initWithNibName:@"UpcomingFights_ipad" bundle:nil] autorelease]; UINavigationController *nc4; nc4 = [[UINavigationController alloc] init]; [nc4.navigationBar setTintColor:[UIColor blackColor]]; nc4.viewControllers = [NSArray arrayWithObjects:viewController4, nil]; self.tabBarController = [[[UITabBarController alloc] init] autorelease]; self.tabBarController.viewControllers = [NSArray arrayWithObjects:nc1, nc2,nc3,nc4 ,nil]; self.window.rootViewController = self.tabBarController; [self.window makeKeyAndVisible]; 

图标为标签

在您的ViewController.m文件中按照如下操作:

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self.title = NSLocalizedString(@"YOUR View NAME", @"YOUR VIEW NAME"); self.tabBarItem.image = [UIImage imageNamed:@"YOUR IMAGE NAME"]; return self; } 

将此代码添加到您的AppDelegate.m中

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { FirstViewController * fvc=[[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil]; SecondViewController * svc=[[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil]; ThirdViewController * tvc=[[ThirdViewController alloc]initWithNibName:@"ThirdViewController" bundle:nil]; FourthViewController * fvc2=[[FourthViewController alloc]initWithNibName:@"FourthViewController" bundle:nil]; tabbar=[[UITabBarController alloc]init]; tabbar.viewControllers=[NSArray arrayWithObjects:fvc,svc,tvc,fvc2,nil]; [self.window addSubview:tabbar.view]; } 

这里是来自user1673099在Swift中的代码(nice username btw …; 0) –

 func initialize_tabs() { var ncArr : [UINavigationController] = [UINavigationController](); for _ in 0...3 { let nc : UINavigationController = UINavigationController(); let vc = UIViewController(); nc.viewControllers = [vc]; let v : UIView = UIView(frame: UIScreen.mainScreen().bounds); let redC : CGFloat = CGFloat(arc4random_uniform(255))/CGFloat(255); let greenC : CGFloat = CGFloat(arc4random_uniform(255))/CGFloat(255); let blueC : CGFloat = CGFloat(arc4random_uniform(255))/CGFloat(255); v.backgroundColor = UIColor(red: redC, green: greenC, blue: blueC, alpha: 1); let l : UILabel = UILabel(frame: UIScreen.mainScreen().bounds); l.text = "Test Label"; l.textAlignment = .Center; v.addSubview(l); vc.view = v; ncArr.append(nc); } self.tabBarController = UITabBarController(); self.tabBarController.viewControllers = ncArr; return; }