addChildViewController: VS addSubview:

前言

最近看大神们的博客时,发现一个之前一直没注意到的API:addChildViewController:很有用武之地,很大程度上弥补了经验不深的开发者(ps:说得好像不是我一样!)常使用的addSubview:的不足,而且Apple官方也希望我们在使用[self.view addSubview:XX]的同时调用[self addChildViewController:XX]。
addChildViewController:是从iOS5开始引入的,那为什么Apple要做出这个改变,下面我们就addSubview:单独使用与联合addChildViewController:使用比较一番!


权衡利弊

在某些场景中,UIViewController的view上包含许多的subview,而这其中的view有些是在特定的状态下才会显示(比如:登录、注册和订单的提示信息),对于经验比较浅我们通常就是在viewDidLoad中通过[self.view addSubview:XX]方法将subview加入控制器的view,而对于当前不需要显示的subview就将它隐藏起来。

乍一看好像没什么问题,效果也和预期的一样,而在收到内存警告时我们就只能手动的将subview从superView中移除(想想怎么移除?),同时你还得仔细想想怎样的移除顺序才能保证App的功能受影响程度最小,即使当前没有显示的view其实也存在于内存中,如果此次的操作view始终不会出现,那就白白浪费了内存。每个App的内存都有个阀值,当超过这个值时,系统将关闭App,所以在收到内存警告时,要尽可能多的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值