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

原文地址:https://www.cnblogs.com/qitiandasheng/p/5544829.html