舉個(gè)例子:
有一個(gè)TabViewController類,里邊有個(gè)scrollView,scrollview包含三個(gè)子控制器A驱还、B嗜暴、C。每個(gè)子控制器的寬度都是屏幕寬度议蟆,左右滑動(dòng)可以切換控制器闷沥。
那么當(dāng)tab由A切換到B的時(shí)候,是不會(huì)去調(diào)A的ViewWillDisappear的方法咐容,也不會(huì)去調(diào)B的ViewWillAppear方法舆逃,因?yàn)樽笥一瑒?dòng)只是scrollview的contentOffset發(fā)生了變化而已。
那么如何在tab切換的時(shí)候頁面能夠自動(dòng)的調(diào)用appear和diappear方法呢戳粒,要解決這一問題路狮,我們可以使用手動(dòng)管理子控制器生命周期的方法
1、在父類重寫, return NO
- (BOOL)shouldAutomaticallyForwardAppearanceMethods
{
return NO;
}
- 在左右切換頁面的時(shí)候蔚约,調(diào)用以下方法
//先讓A消失掉beginAppearanceTransition:NO 代表disappear奄妨,YES代表appear [A beginAppearanceTransition:NO animated:NO]; [A endAppearanceTransition]; //再讓B顯示出來 [B beginAppearanceTransition:YES animated:YES]; [B endAppearanceTransition];