1.自定义控制器切换<一>

时间:2023-03-08 21:09:13
1.自定义控制器切换<一>

一.自定义控制器切换:在同一个控制器上,展示不同的控制器,类似于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];