addChildViewController 手动管理生命周期

举个例子:
有一个TabViewController类,里边有个scrollView,scrollview包含三个子控制器A、B、C。每个子控制器的宽度都是屏幕宽度,左右滑动可以切换控制器。
那么当tab由A切换到B的时候,是不会去调A的ViewWillDisappear的方法,也不会去调B的ViewWillAppear方法,因为左右滑动只是scrollview的contentOffset发生了变化而已。
那么如何在tab切换的时候页面能够自动的调用appear和diappear方法呢,要解决这一问题,我们可以使用手动管理子控制器生命周期的方法

1、在父类重写, return NO

  • (BOOL)shouldAutomaticallyForwardAppearanceMethods
    {
    return NO;
    }
  1. 在左右切换页面的时候,调用以下方法
    //先让A消失掉beginAppearanceTransition:NO 代表disappear,YES代表appear
     [A beginAppearanceTransition:NO animated:NO];
     [A endAppearanceTransition];
    
    //再让B显示出来
     [B beginAppearanceTransition:YES animated:YES];
     [B endAppearanceTransition];
    

你可能感兴趣的:(addChildViewController 手动管理生命周期)