移除所有子视图控制器

//移除所有子视图控制器

- (void)removeAllChildViewControllers{

    for (UIViewController *vc in self.childViewControllers) {

    [vc willMoveToParentViewController:nil];

    [vc removeFromParentViewController];

  }

}

/

*  方法说明:

*  1、addChildViewController:向父VC中添加子VC,添加之后自动调用willMoveToParentViewController:父VC

*  2、removeFromParentViewController:将子VC从父VC中移除,移除之后自动调用

didMoveToParentViewController:nil

*  3、willMoveToParentViewController:  当向父VC添加子VC之后,该方法会自动调用。若要从父VC移除子VC,需要在移除之前调用该方法,传入参数nil。

*  4、didMoveToParentViewController:  当向父VC添加子VC之后,该方法不会被自动调用,需要显示调用告诉编译器已经完成添加(事实上不调用该方法也不会有问题,不太明白); 从父VC移除子VC之后,该方法会自动调用,传入的参数为nil,所以不需要显示调用。

*/

/

*  注意点:

要想切换子视图控制器a/b,a/b必须均已添加到父视图控制器中,不然会报错

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容