控制器生命周期问题(非正常情况)

控制器不是以正常的(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,以此来驱动生命周期

你可能感兴趣的:(控制器生命周期问题(非正常情况))