举个例子:
有一个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;
}
- 在左右切换页面的时候,调用以下方法
//先让A消失掉beginAppearanceTransition:NO 代表disappear,YES代表appear [A beginAppearanceTransition:NO animated:NO]; [A endAppearanceTransition]; //再让B显示出来 [B beginAppearanceTransition:YES animated:YES]; [B endAppearanceTransition];
网友评论