在iOS 5.0及以后,iOS為UIViewController類添加了新的屬性和方法:
@property(nonatomic,readonly) NSArray *childViewControllers
// 向視圖控制器容器中添加子視圖控制器
- (void)addChildViewController:(UIViewController *)childController
// 從父視圖控制器中刪除
- (void) removeFromParentViewController
// 交換兩個子視圖控制器的位置
- (void)transitionFromViewController::::::
// 當一個視圖控制器從視圖控制器容器中被添加或者被刪除之前谈竿,該方法被調(diào)用
- (void)willMoveToParentViewController:(UIViewController *)parent
// 當從一個視圖控制容器中添加或者移除viewController后,該方法被調(diào)用
- (void)didMoveToParentViewController:(UIViewController *)paren
關(guān)于willMoveToParentViewController方法和didMoveToParentViewController方法的使用
1舔哪、這兩個方法用在子視圖控制器交換的時候調(diào)用转唉!即調(diào)用transitionFromViewController 方法時調(diào)用;
2晚岭、當調(diào)用willMoveToParentViewController方法或didMoveToParentViewController方法時碑隆,要注意他們的參數(shù)使用:
當某個子視圖控制器將從父視圖控制器中刪除時恭陡,parent參數(shù)為nil,
即:[將被刪除的子試圖控制器 willMoveToParentViewController:nil];
當某個子試圖控制器將加入到父視圖控制器時上煤,parent參數(shù)為父視圖控制器休玩,
即:[將被加入的子視圖控制器 didMoveToParentViewController:父視圖控制器];
3、調(diào)用addChildViewController:方法時楼入,系統(tǒng)默認會調(diào)用willMoveToParentViewController:方法哥捕,無需自己調(diào)用。但是我們必須在調(diào)用addChildViewController:方法后調(diào)用didMoveToParentViewController:方法嘉熊,告訴iOS遥赚,已經(jīng)完成添加(或刪除)子控制器的操作;
4阐肤、調(diào)用removeFromParentViewController:方法時凫佛,系統(tǒng)默認會調(diào)用didMoveToParentViewController:方法讲坎,無需自己調(diào)用。但是我們必須先調(diào)用willMoveToParentViewController:方法愧薛,且parent參數(shù)為nil晨炕。