控制器生命周期问题(非正常情况)
2017-08-17 本文已影响3人
craig_wang
控制器不是以正常的(push, present)出现,而是作为子控制器出现 -- 生命周期(viewWillAppear, viewDidAppear, viewWillDisappear, viewDidDisappear)特殊情况
现象如下: <说明: 视图: 指window有值的view>
-
子控制器的view在被添加到视图上时 -> viewWillAppear(添加成功前) viewDidAppear(添加成功后) 会被调用
-
子控制器的view在被从视图移除时 -> viewWillDisappear(移除成功前) viewDidDisappear(移除成功后)
-
子控制器的view在视图层级上,父控制器在切换触发生命周期时,子控制器的生命周期正常运行。但子控制器的view不在视图层级上时,其生命周期失效
猜测:
-
以子控制器的方式添加子控制器,子控制器的生命周期 -> 不是父控制器触发的
-
子控制器的生命周期依赖view的window变化(当childView添加到父fatherView时,childView.window = fatherView.window),控制器会kvo window,以此来驱动生命周期