博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建父子控制器
阅读量:5225 次
发布时间:2019-06-14

本文共 1258 字,大约阅读时间需要 4 分钟。

小码哥大神的代码,确实精简!

1、最终结果如下面三个图,点击one,two,three,分别出现3个不同的控制器

直接代码:(三个控制器自己创建)

1 #import "ViewController.h" 2 #import "ZWOneViewController.h" 3 #import "ZWTwoViewController.h" 4 #import "ZWThreeViewController.h" 5 @interface ViewController () 6 /** 正在显示的控制器 */ 7 @property (weak, nonatomic)UIViewController *showingVC; 8 @end 9 @implementation ViewController10 11 - (void)viewDidLoad {12     [super viewDidLoad];13     //添加到子控制器上14     [self addChildViewController:[[ZWOneViewController alloc] init]];15     [self addChildViewController:[[ZWTwoViewController alloc] init]];16     [self addChildViewController:[[ZWThreeViewController alloc] init]];17 }18 - (IBAction)buttonClick:(UIButton *)button {19     //移除当前显示的控制器20     [self.showingVC.view removeFromSuperview];21     //获得控制器的位置索引22     NSUInteger index = [button.superview.subviews indexOfObject:button];23     //添加控制器View24     self.showingVC = self.childViewControllers[index];25     //设置尺寸26     self.showingVC.view.frame = CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height - 64);27     //添加到控制器上28     [self.view addSubview:self.showingVC.view];29 } 30 @end

 

注:1、扩展性非常好,直接数组中添加需要添加的控制器

  2、由于是索引,一定要注意三个控制器的顺序,否则会出现点击后出现其它控制器。如下图:

转载于:https://www.cnblogs.com/hissia/p/5452713.html

你可能感兴趣的文章
最适合程序员转行的10大职业
查看>>
空间分析开源库GEOS
查看>>
RQNOJ八月赛
查看>>
数据表设计
查看>>
alluxio
查看>>
关于ajax回调数据类型为Json,如何获得他的值
查看>>
前端各种mate积累
查看>>
css深度选择器
查看>>
jQuery 1.7 发布了
查看>>
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>
linux php编译安装
查看>>
Ext Gantt Web甘特图--高级应用
查看>>
name phone email正则表达式
查看>>
721. Accounts Merge
查看>>
一个体验好的Windows 任务栏缩略图开发心得
查看>>
电商购物车产品在做什么?
查看>>
python数据类型之字典类型
查看>>
Python之Split函数
查看>>