iOS-父子控制器

控制器父子关系的建立原则

  • 如果2个控制器的view是父子关系(不管是直接还是间接的父子关系),那么这2个控制器也应该为父子关系
[a.view addSubview:b.view];
[a addChildViewController:b];
// 或者
[a.view addSubview:otherView];
[otherView addSubbiew.b.view];
[a addChildViewController:b];

获得所有的子控制器

@property(nonatomic,readonly) NSArray *childViewControllers;


## 添加一个子控制器
>```
//XCOneViewController成为了self的子控制器
//self成为了XMGOneViewController的父控制器
[self addChildViewController:[[XCOneViewController alloc] init]];
// 通过addChildViewController添加的控制器都会存在于childViewControllers数组中

获得父控制器

@property(nonatomic,readonly) UIViewController *parentViewController;


## 将一个控制器从它的父控制器中移除
>```
// 控制器a从它的父控制器中移除
[a removeFromParentViewController];
 如果一个子控制器从父控制器中移除的时候会自动调用一次didMoveToParentViewController 方法

demo

父子控制器push问题demo

父子控制器Modal问题demo

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

相关阅读更多精彩内容

  • 关于addChildViewConroller的相关问题。 ViewController 添加子控制的方法为add...
    蠢萌的L君阅读 13,599评论 0 15
  • 一、概述 “当控制器的view互为父子关系,那么控制器最好也互为父子关系” 使用场景 下图是开发中比较常见的场景 ...
    CoderMikeHe阅读 6,054评论 4 39
  • 最近发现很多项目中都有用到父子控制器切换界面的功能,就着手封装一个简易的小框架CDDPagerController...
    RocketsChen阅读 10,526评论 31 28
  • 应用场景需求:细心的人会发现,在很多app应用中点击顶部状态栏会快速返回顶部,系统有帮忙实现这个功能,但是有条件;...
    船长_阅读 4,913评论 6 11
  • 昏暗无月的夜晚,简陋小屋外寒风夹杂着雪花呼啸,偶尔伴随着几声咳嗽。 “他终于按捺不住了,可是那消息确定了?”白发人...
    末期风阅读 3,730评论 0 0

友情链接更多精彩内容