标签:
小码哥大神的代码,确实精简!
1、最终结果如下面三个图,点击one,two,three,分别出现3个不同的控制器
直接代码:(三个控制器的创建就上了)
#import "ViewController.h" #import "ZWOneViewController.h" #import "ZWTwoViewController.h" #import "ZWThreeViewController.h" @interface ViewController () /** 正在显示的控制器 */ @property (weak, nonatomic)UIViewController *showingVC; /** 控制器数组 */ @property (strong, nonatomic)NSArray *allVCs; //代替控制器的三个属性 @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.allVCs = @[ [[ZWOneViewController alloc] init], [[ZWTwoViewController alloc] init], [[ZWThreeViewController alloc] init] ]; } - (IBAction)buttonClick:(UIButton *)button { //移除当前显示的控制器 [self.showingVC.view removeFromSuperview]; //获得控制器的位置索引 NSUInteger index = [button.superview.subviews indexOfObject:button]; //添加控制器View self.showingVC = self.allVCs[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]; }
注:1、扩展性非常好,直接数组中添加需要添加的控制器
2、由于是索引,一定要注意三个控制器的顺序,否则会出现点击后出现其它控制器。如下图:
标签:
原文地址:http://www.cnblogs.com/hissia/p/5452713.html