UIView的AddChildViewCtroller的用法(4中页面切换方式)
来源:互联网 发布:js单例模式用处 编辑:程序博客网 时间:2024/05/17 06:49
UIView的AddChildViewCtroller的用法
———子控制器视图的切换
一.视图控制器的4种切换方式
1.使用presentViewController方法进行切换
适合于顺序型的页面转换,比如说某中验证(登录信息)型的,而且可以通过dismissViewController方便的回到父页面,默认动画从上而下。
2.使用pushViewController方法(前提是使用了导航控制器)
可以很方便的返回,层次感比较强,切换方式为左右,跳转到某个特定的控制器。
返回上一个页面调用popViewController
问题:在IB中生成含导航控制器的页面,代码中怎么对这个页面传输数据了?
答:可以通过获取到导航控制器,使用它的viewController属性和对应的下标可以得到相应控制器的对象,并可对它修改或赋值,跳转页面后有效。
3.使用addChildViewController方法
在没有导航控制器的情况下在多层次的视图页面中自由跳转,优点:
1.页面逻辑很清晰,相应的View对应相应的ViewController。
2.当某个子View没有显示时,将不会被Load,减少了内存的使用。
3.当内存紧张时,没有Load的View将被首先释放,优化了程序的内存释放机制。
4.一个页面中可以添加多个ViewController,并且可以在需要显示时才load它。
5.页面的切换方式可以在transitionViewController中选择(左右、上下、融化)
ios5后ViewController中新添加了下面几个方法。
addChildViewController: removeFromParentViewController transitionFromViewController:toViewController:duration:options:animations:completion: //切换页面显示调用willMoveToParentViewController: didMoveToParentViewController:
4.在IB中使用Ctrol+左键连接的控制器跳转(最简单),不过需要在切换页面中做点什么就比较麻烦。
二.使用AddChildViewcontroller切换视图(Object-C)
使用AddChildViewcontroller简单切换视图、可以运用到多分栏子页面切换(没有切换父控制器),以下只是简单使用AddChildViewcontroller,并没有明显切换过程,如果需要,可以自己添加按钮切换。
#import "ViewController.h"@interface ViewController ()@property (nonatomic,strong) UIViewController *VC1;@property (nonatomic,strong) UIViewController *VC2;@property (nonatomic,strong) UIViewController *VC3;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //1.准备多个控制器(可以来自nib文件),实际开发可根据需要再初始化。 self.VC1 = [[UIViewController alloc]init]; self.VC2 = [UIViewController new]; //self.VC2.view.backgroundColor = [UIColor greenColor];所以默认的UIView如果不加颜色是可以透明的。 self.VC3 = [UIViewController new]; for (int i=0; i<3; i++) { UILabel *lb = [[UILabel alloc]initWithFrame:CGRectMake(100, 50, [UIScreen mainScreen].bounds.size.width/3, 20)]; lb.backgroundColor = [UIColor redColor]; if(i==0){
<pre name="code" class="objc"><span style="white-space:pre"></span>lb.text = @"测试1";[self.VC1.view addSubview:lb]; }else if (i == 1){ lb.text = @"视图2"; [self.VC2.view addSubview:lb]; }
//2.将控制器添加到子控制器中(调用addChildViewController方法) [self addChildViewController:_VC2]; //只有两层,不会显示子控制器视图上的东西 [self addChildViewController:_VC1]; [self.view addSubview:_VC2.view];//这样是允许的,会直接使用VC2的View(单独)。
//3.过渡控制器(调用TransitionFromViewController方法)。 [self transitionFromViewController:self.VC2 toViewController:self.VC1 duration:4 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{ nil;//过度过程做些什么 } completion:^(BOOL finished) { NSLog(@"转换过度中"); //过度之后做些什么 }];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end发现:UIView默认是可以透明的(可以显示上一个视图中的控件),但是添加了背景颜色就不可以了。
- UIView的AddChildViewCtroller的用法(4中页面切换方式)
- UIView的试图切换
- UIview之间常用视图之间的切换方式
- iOS中UIView的用法(二)
- IOS页面切换的几种方式
- UIView的动画方式
- UIView的一些用法
- UIView的常见用法
- UI 动画之UIView动画 实现两个页面之间的切换
- Android各个activity之间(页面之间)的切换实现方式(推荐第一种方式)
- UIView层次切换(bringSubviewToFront,sendSubviewToBack)的使用
- iOS中画 UIView的两种方式
- MyEclipse中页面切换慢的问题
- 页面中简单的切换效果
- Android程序中页面的自动切换
- UIView Animation的一些用法
- UIView Animation的一些用法
- UIView Animation的一些用法
- rtp h264注意点(FU-A分包方式说明)
- 手摸手教你做动态壁纸
- 【华为OJ40】输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- php自学提升进阶路线
- H.264中的NAL单元类型 nal_unit_type
- UIView的AddChildViewCtroller的用法(4中页面切换方式)
- js轮播图
- Servlet相关类的用法演示
- Literal Values
- Hibernate框架基础——一对多关联关系映射
- POJ 2096 Collecting Bugs
- OC 中数据持久化 sqlite3 的使用
- springMVC和数据库中的一些乱码问题
- js按钮全选反选