今天在项目中检查循环引用问题的时候遇到了此问题,查询了别的页面,发现打印log并不一样。所以查阅了资料,这里记录一下。
很多时候,我们都会遇到,在一个viewController中,添加别的controller,已达到特殊的转场效果,或者为了用户能在一个页面看到并和多个页面的内容交互的效果。
因此,苹果给我们提供了这个概念,和实现方法:addChildViewController
这里有一个使用场景,
- 页面初始化的时候,在viewDidLoad中添加了子控制器,此时先加载缓存数据(也就是页面会先展示)
- 然后展示的同时,重新调用接口,拉取数据。
- 得到数据之后,重新刷新页面
相信大部分人也都是这么实现的。
因此,demo中是这么写的:
A(ViewController)页面中有一个按钮,跳转到B(TestViewController)页面, 然后B页面中有两个按钮,第一个按钮用来第一次添加childViewController->C页面(SecViewController), 第二个页面,用来模拟网络请求得到结果之后,重新刷新布局的操作。
这里有一个上述操作打印的log图
可以看到中间很醒目的