iOS内存优化-addchildController

iOS内存优化_addChildViewController

   iOS的性能优化有很多方面,今天发现虽然很常用但忽视了一个iOS5出现的API,addChildViewController对性能的优化,简单来说就是一个ViewController上面有好多sub View,这些子view不常用但是盖在上面也会耗内存,应该改为ViewController上面加好多sub ViewController,然后不加载sub View,需要用到的时候使用下面这行代码来加载sub View
transitionFromViewController:toViewController:duration:options:animations:completion

那么具体流程是:

1.调用addChildViewController

firstViewController=[[FirstViewController alloc]
initWithNibName:@"FirstViewController" bundle:nil];

[self addChildViewController:firstViewController];

这个时候firstViewController的view是没有加载的,只会调用FirstViewController的willMoveToParentViewController

2.然后真正加载view的时候

[contentView addSubview:thirdViewController.view];
开始调用ViewController的viewDidLoad,viewWillAppear,viewDidAppear方法

3.事先addChildViewController 方法添加了secondViewController,没有加载secondViewController的view,加载的时候用transitionFromViewController从FirstViewController跳转

[self transitionFromViewController:currentViewController toViewController:secondViewController duration:1 options:UIViewAnimationOptionTransitionCurlDown animations:^{
            }  completion:^(BOOL finished) {
                if (finished) {
                     currentViewController=secondViewController;
                }else{
                     currentViewController=oldViewController;
                }
            }];

控制器的生命周期如下:

changeViewController[17248:4467101] -[SecondViewController viewDidLoad]

changeViewController[17248:4467101] -[FirstViewController viewWillDisappear:]

hangeViewController[17248:4467101] -[SecondViewController viewWillAppear:]

changeViewController[17248:4467101] -[SecondViewController viewDidAppear:]

changeViewController[17248:4467101] -[FirstViewController viewDidDisappear:]

这是一种性能优化的方式,特此记录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,971评论 25 709
  • 视图控制对象通过alloc和init来创建,但是视图控制对象不会在创建的那一刻就马上创建相应的视图,而是等到需要使...
    Coder_JMicheal阅读 3,421评论 0 2
  • 我很少谈婚姻,有读者问我,很少看到你对爱情婚姻的犀利见解,为什么呢?答案是:我不敢写,我对这两件事的负面看法多...
    石琢玉阅读 7,059评论 0 4
  • 这孙子! 王爵早就看出来了,他老早就对赵琳琳有兴趣,看到别人也就装装孙子 看到赵琳琳,不单装孙子,还装猴子,脸红的...
    米铺阅读 14,198评论 0 4
  • 去年加入芒果科技的很大一部分原因是我觉得他们在做的老年人智能硬件会是物联网大潮与2025年老人潮的一个交点。可惜我...
    Aemeath2501阅读 8,089评论 0 1

友情链接更多精彩内容