一.自定义控制器切换:在同一个控制器上,展示不同的控制器,类似于tabbar一样
二.怎么做?(问题解决步骤)
1.创建若干控制器:OneViewController TwoViewController .....
2.定义一个现实的控制器:
//定义:
@property (nonatomic, weak) UIViewController *showingVc;
self.childViewControllers= @[
[[ZSOneViewController alloc] init],
[[ZSTwoViewController alloc] init],
[[ZSThreeViewController alloc] init]
];
//或者
[self addChildViewController:[[ZSOneViewController alloc] init]];
[self addChildViewController:[[ZSTwoViewController alloc] init]];
[self addChildViewController:[[ZSThreeViewController alloc] init]];
3.核心步骤:3.1.移除现实控制器上的视图-->获取到要显示的控制器,并且赋值给显示的控制器-->将显示的控制器添加到主控制器上
// 移除其他控制器的view
[self.showingVc.view removeFromSuperview];
// 获得控制器的位置(索引)
NSUInteger index = [button.superview.subviews indexOfObject:button];
// 添加控制器的view
self.showingVc = self.childViewControllers[index];
self.showingVc.view.frame = CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height - 64);
[self.view addSubview:self.showingVc.view];
//知识点补充:
//将第一个控制器从childViewControllers数组中移除
[self.childViewControllers[0] removeFromParentViewController];