How to add UITabBarController programmatically (no xib file or storyboard)

后端 未结 3 1242
感情败类
感情败类 2020-12-28 20:52

I want to add a UITabBarController to my application. But I have to do it with code only. No xib files or storyboards. How to do this entirely through code?

相关标签:
3条回答
  • 2020-12-28 21:42

    Add this code in your 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];
    }
    
    0 讨论(0)
  • Here is the code from user1673099 in 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;
    }
    
    0 讨论(0)
  • 2020-12-28 21:46

    Try this

    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];
    

    ICON FOR TABBAR

    In your ViewController.m file do as follow:

    - (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;
    }
    
    0 讨论(0)
提交回复
热议问题