容器视图控制器
2015-09-09 20:56
393 查看
1.创建一个继承自UIViewController的ContainerViewController的视图控制器作为窗口的根视图控制器
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
self.window.rootViewController = [ContainerViewController new];
2.创建三个继承自UIViewController的视图控制器,作为容器控制器的子视图控制器
@interface ContainerViewController ()
@property(nonatomic,strong) LoginViewController *loginVC;
@property(nonatomic,strong) RegisterViewController *registerVC;
@property(nonatomic,strong) FindPassWordViewController *findPassWordVC;
@end
//添加子控制器
self.loginVC = [LoginViewController new];
[self addChildViewController:_loginVC];
self.registerVC = [RegisterViewController new];
[self addChildViewController:_registerVC];
self.findPassWordVC =[FindPassWordViewController new];
[self addChildViewController:_findPassWordVC];
//添加一个根视图
[self.view addSubview:self.loginVC.view];
3./在containerView上添加一个UIsegmentedControl的对象,用于切换三个视图
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]initWithItems:@[@"登陆",@"注册",@"找回密码"]];
segmentedControl.frame = CGRectMake(10, self.view.frame.size.height-40, self.view.frame.size.width-20,35);
segmentedControl.selectedSegmentIndex = 0;
segmentedControl.momentary = YES;
[self.view addSubview:segmentedControl];
//为segmentedControl绑定事件
[segmentedControl addTarget:self action:@selector(segmentedControlAction:) forControlEvents:UIControlEventValueChanged];
//实现三个视图的切换的事件
-(void)segmentedControlAction:(UISegmentedControl *)sender
{
//方法一:
//把下标为0的视图移除
// [self.view.subviews[0] removeFromSuperview];
//
// switch (sender.selectedSegmentIndex) {
// case 0:{//登陆界面
// [self.view insertSubview:self.loginVC.view atIndex:0];
// break;
// }
// case 1:{//注册界面
// [self.view insertSubview:self.registerVC.view atIndex:0];
// break;
// }
// case 2:{//找回密码
// [self.view insertSubview:self.findPassWordVC.view atIndex:0];
// break;
// }
// }
//方法二:通过容器控制器得到所有的子控制器
NSArray *array = self.childViewControllers;
//获得所有的子视图,并移除下标为0的视图
[self.view.subviews[0] removeFromSuperview];
//获得分段控制器选中的下标的对应的视图控制器
UIViewController *vc = array[sender.selectedSegmentIndex];
//将选中的视图控制器上的视图加到第0个视图上
[self.view insertSubview:vc.view atIndex:0];
}
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
self.window.rootViewController = [ContainerViewController new];
2.创建三个继承自UIViewController的视图控制器,作为容器控制器的子视图控制器
@interface ContainerViewController ()
@property(nonatomic,strong) LoginViewController *loginVC;
@property(nonatomic,strong) RegisterViewController *registerVC;
@property(nonatomic,strong) FindPassWordViewController *findPassWordVC;
@end
//添加子控制器
self.loginVC = [LoginViewController new];
[self addChildViewController:_loginVC];
self.registerVC = [RegisterViewController new];
[self addChildViewController:_registerVC];
self.findPassWordVC =[FindPassWordViewController new];
[self addChildViewController:_findPassWordVC];
//添加一个根视图
[self.view addSubview:self.loginVC.view];
3./在containerView上添加一个UIsegmentedControl的对象,用于切换三个视图
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]initWithItems:@[@"登陆",@"注册",@"找回密码"]];
segmentedControl.frame = CGRectMake(10, self.view.frame.size.height-40, self.view.frame.size.width-20,35);
segmentedControl.selectedSegmentIndex = 0;
segmentedControl.momentary = YES;
[self.view addSubview:segmentedControl];
//为segmentedControl绑定事件
[segmentedControl addTarget:self action:@selector(segmentedControlAction:) forControlEvents:UIControlEventValueChanged];
//实现三个视图的切换的事件
-(void)segmentedControlAction:(UISegmentedControl *)sender
{
//方法一:
//把下标为0的视图移除
// [self.view.subviews[0] removeFromSuperview];
//
// switch (sender.selectedSegmentIndex) {
// case 0:{//登陆界面
// [self.view insertSubview:self.loginVC.view atIndex:0];
// break;
// }
// case 1:{//注册界面
// [self.view insertSubview:self.registerVC.view atIndex:0];
// break;
// }
// case 2:{//找回密码
// [self.view insertSubview:self.findPassWordVC.view atIndex:0];
// break;
// }
// }
//方法二:通过容器控制器得到所有的子控制器
NSArray *array = self.childViewControllers;
//获得所有的子视图,并移除下标为0的视图
[self.view.subviews[0] removeFromSuperview];
//获得分段控制器选中的下标的对应的视图控制器
UIViewController *vc = array[sender.selectedSegmentIndex];
//将选中的视图控制器上的视图加到第0个视图上
[self.view insertSubview:vc.view atIndex:0];
}
相关文章推荐
- UVA 11324 The Largest Clique (拆点+KM)
- 【IO】同步,异步,阻塞,非阻塞 (亡羊补牢篇)
- 【Beijing wc2012】【BZOJ2659】算不出的算式
- qrencode二维码生成在linux下的编译(转)
- Linux 文件查看常用命令
- POJ - 1751 Highways(最小生成树)
- VC模拟文件拖拽
- 增序顺序储存线性表的基本操作
- Maximum Depth of Binary Tree
- css实现翻页效果
- 立此存照-抄袭作业者的曝光台
- UVA 10559 区间DP
- Nexus 5 如何進入 recovery 菜單
- web前端美站库-----把数据插入数据库,并读取所有数据
- 多个集合求交集 代码示例
- eclipse 中文注释乱码问题的解决方法
- dynamic_cast<>运算符
- Cookie跨域操作
- Cookie跨域操作
- 实现aoti() 函数