iOS关于 UITabBarController和 UINavigationController混合使用

首先我些这些东西的时候使用的书纯代码写的 没有使用storyboard 想必使用纯代码创建工程是每个开发者都会的这里就不多说了

MYController* my = [[MYController alloc]init];

self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

self.window.rootViewController =my;

[self.window makeKeyAndVisible];

这里说一下这个 MYController 这个根视图的类型是 UITabBarController类型  然后在控制器中写如下代码:

-(void)addChileVC{

MessageController * threeVC =[[MessageController alloc]init];

threeVC.title =@"数据推广";

UINavigationController * three =[self boardNameInstantVc:threeVC];

PushDataController * otherVC =[[PushDataController alloc]init];

otherVC.title =@"文案采集";

UINavigationController * other =[self boardNameInstantVc:otherVC];

OtherController * elseVC =[[OtherController alloc]init];

elseVC.title =@"商家精选";

UINavigationController * elses =[self boardNameInstantVc:elseVC];

self.viewControllers = @[three,other,elses];

}

- (UINavigationController *)boardNameInstantVc:(UIViewController *)controller{

UINavigationController * nav =[[UINavigationController alloc]initWithRootViewController:controller];

return nav;

}

这是添加控制器的代码

-(void)addtabar{

MTtabar * custabar =[[MTtabar alloc]init];

custabar.frame = self.tabBar.frame;

[self.view addSubview:custabar];

self.custabar = custabar;

}

-(void)addbtn{

for (int i = 0; i<3; i++) {

MTTabButton * btn =[[MTTabButton alloc]init];

NSString *normalImage = [NSString stringWithFormat:@"TabBar%@",@(i + 1)];

btn.tag = i;

[btn setImage:[UIImage imageNamed:normalImage] forState:UIControlStateNormal];

CGFloat btnW = self.view.frame.size.width / 3;

CGFloat btnH = 45;

btn.frame = CGRectMake(i*btnW, 0, btnW, btnH);

if (i == 0) {

btn.selected =YES;

self.selectBtn = btn;

}

[btn addTarget:self action:@selector(btnclick:) forControlEvents:UIControlEventTouchDown];

[self.custabar addSubview:btn];

}

}

-(void)btnclick:(UIButton * )sender{

self.selectBtn.selected = NO;

sender.selected = YES;

self.selectBtn = sender;

下面的这一句代码是tabar的方法 根据不同的下标去跳转不同的控制器 所以要在创建按钮的时候设置一下按钮的tag值

self.selectedIndex = sender.tag;

}

还有另外一种方法就  直接创建一个继承UItabarviewcontroller的控制器 在里面添加自己想加的控件!

nextVC.hidesBottomBarWhenPushed=YES;// 进入后隐藏tabbar

这个是隐藏tabar的方法!

今天添加一下修改TabBar默认控制器的代码

self.selectedViewController =[self.viewControllers objectAtIndex:1];

后面数组里面的坐标可以根据自己的需求改!

这个是自定义tabar。 并且跳转相应的控制器 就是自己在开发的时候遇到的情况 帮助一下需要帮助的人!大神勿喷啊 如果有更好的方法 请大神指教!!!!!!!!

你可能感兴趣的:(iOS关于 UITabBarController和 UINavigationController混合使用)