addChildViewController相关

原创 2015年07月08日 21:27:38

addChildViewController相关

  1. 添加子控制器:
    -(container.view addSubView:childController.view)
    1.1 [container addChildViewController:childController]
    1.2 [childController didMoveToParentViewController:container]
    容器控制器添加子控制器,子控制器的(void)willMoveToParentViewController:(UIViewController *)parent 方法会自动被调用,但需要告诉系统何时添加完毕,必须手动调用子控制器的didMoveToParentViiewController:

  2. 删除子控制器:
    2.1[childController.view removeFromSuperview]
    2.2[childController willMoveToParentViewController:nil]
    2.3[childController removeFromParentViewController]

先将自控器的视图从容器控制器视图中移除,在删除自控制器 之前 需要先调用子控制器的willMoveToParentViewController: 方法传入nil参数,之后才调用子控制器的removeFromParentViewController 方法,remove方法将自动调用willMoveToParentViewController 方法,无需手动调用。

- (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(5_0);

这个方法比较有迷惑性,需要注意查看上面的注释说明,这个方法其实是用来管理view hierarchy,并不会影响 view controller hierarchy,所以这里你仍然需要自己管理view controler hierarchy。这个方法同时也比较有用,比如在切换child view controller的显示时,这个方法更加好用,可以参考官方guide中的代码实现:

- (void) cycleFromViewController: (UIViewController*) oldC
            toViewController: (UIViewController*) newC
{
    [oldC willMoveToParentViewController:nil];                        // 1
    [self addChildViewController:newC];

    newC.view.frame = [self newViewStartFrame];                       // 2
    CGRect endFrame = [self oldViewEndFrame];

    [self transitionFromViewController: oldC toViewController: newC   // 3
          duration: 0.25 options:0
          animations:^{
             newC.view.frame = oldC.view.frame;                       // 4
             oldC.view.frame = endFrame;
           }
           completion:^(BOOL finished) {
             [oldC removeFromParentViewController];                   // 5
             [newC didMoveToParentViewController:self];
            }];
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)

转自 http://blog.csdn.net/hmt20130412/article/details/34523235?utm_source=tuicool   还有好多知识 大家可以学习 ...

iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)

原文  http://blog.csdn.net/hmt20130412/article/details/34523235         本来只是打算介绍一下addChildViewContr...

IOS研究之UITabBarController隐藏tabBar以及addChildViewController

 最近我所在的项目组对项目进行了一些基础组件的优化,其中有关于UITabBarController隐藏tabBar的问题感觉有必要总结下。 一,需求分析 先来说说项目基本需求:整个项目由左侧...

addChildViewController

在苹果的WWDC2011大会视频的 《Session 101 - What’s New in Cocoa》 和 《Session 102 - Implementing UIViewControll...

iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)

本来只是打算介绍一下addChildViewController这个方法的,正好今天朋友去换工作面试问到网易新闻标签栏效果的实现,就结合它,用个小Demo实例介绍一下:(具体解释都写在了Demo里面的...

ios5中UIViewController addChildViewController等新方法

ios4还是3,以前基于在vviewcontroller上的切换,基本上就2中方式,导航控制器上的push,或者普通控制器上modal,现在终于多了一个这种玩意儿了。在ios5中,ViewContro...

IOS addChildViewController方法使用及注意事项

在iOS 5.0及以后,iOS为UIViewController类添加了新的属性和方法: 1 2 3 4 5 6 @pro...

iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)

本来只是打算介绍一下addChildViewController这个方法的,正好今天朋友去换工作面试问到网易新闻标签栏效果的实现,就结合它,用个小Demo实例介绍一下:(具体解释都写在了Demo里面的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)