[UIViewController addChildViewController]

这些新增的方法和属性用于改进咱们的编程方式。那么让咱们先看看之前的对于UIViewController的使用有什么潜在的问题,认清问题,咱们才能理解苹果改变的意义。编程

在之前,一个UIViewController的View可能有不少小的子view。这些子view不少时候被盖在最后,咱们在最外层ViewController的viewDidLoad方法中,用addSubview增长了大量的子view。这些子view大多数不会一直处于界面上,只是在某些状况下才会出现,例如登录失败的提示view,上传附件成功的提示view,网络失败的提示view等。可是虽然这些view不多出现,可是咱们却经常一直把它们放在内存中。另外,当收到内存警告时,咱们只能本身手工把这些view从super view中去掉。网络

苹果新的API增长了addChildViewController方法,而且但愿咱们在使用addSubview时,同时调用[self addChildViewController:child]方法将sub view对应的viewController也加到当前ViewController的管理中。对于那些当前暂时不须要显示的subview,只经过addChildViewController把subViewController加进去。须要显示时再调用transitionFromViewController:toViewController:duration:options:animations:completion方法。spa

另外,当收到系统的Memory Warning的时候,系统也会自动把当前没有显示的subview unload掉,以节省内存。orm

相关文章
相关标签/搜索