自定义控制器切换
2016-02-09 17:54
267 查看
1.先添加一个view(菜单栏)并添加约束
![](http://img.blog.csdn.net/20160209172832343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.再往 菜单栏view中,添加3个按钮控件,等高等宽
![](http://img.blog.csdn.net/20160209172943516?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3.让菜单栏中3个按钮都连线到控制器的buttonclick方法上,并创建3个控制器
![](http://img.blog.csdn.net/20160209174824388?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
4.父控制代码
2.再往 菜单栏view中,添加3个按钮控件,等高等宽
3.让菜单栏中3个按钮都连线到控制器的buttonclick方法上,并创建3个控制器
4.父控制代码
// // ViewController.m #import "ViewController.h" #import "OneViewController.h" #import "TwoViewController.h" #import "ThreeViewController.h" @interface ViewController () /** 正在显示的控制器 */ @property (nonatomic, weak) UIViewController *showingVc; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 通过addChildViewController添加的控制器都会存在于childViewControllers数组中 [self addChildViewController:[[OneViewController alloc] init]]; [self addChildViewController:[[TwoViewController alloc] init]]; [self addChildViewController:[[ThreeViewController alloc] init]]; } - (IBAction)buttonClick:(UIButton *)sender { // 移除其他控制器的view [self.showingVc.view removeFromSuperview]; // 获得控制器的位置(索引) NSUInteger index = [sender.superview.subviews indexOfObject:sender]; // 添加控制器的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]; } @end最后效果:
相关文章推荐
- 红螺寺踏春
- java : jsoup 网页 table 解析范例
- win8.1安装veket的方法
- [自学java笔记] day1 chapter4~
- LightOJ 1109 - False Ordering (因子数打表排列)
- supervisor
- cocos2dx 文字遮罩ClipingNode与中文乱码解决
- 加载 xib 文件
- 1050. 螺旋矩阵(25)
- 一个命令永久禁用Win10驱动程序强制签名
- ZOJ 3622 Magic Number(数)
- nyoj48过河问题
- 《Python for kids》学习笔记(五)
- LeetCode题解:Word Break
- reading note 2
- POJ2823(优先队列)
- LeetCode题解:Copy List with Random Pointer
- 猴年大吉之开心刷题
- 文明3地图之一--两个大岛
- spring(IOC) 对象创建时机、对象作用域scope、对象的初始化方法和销毁方法的调用、spring容器总结