子控制器被基类控件覆盖

基类上添加的控件延后显示问题

今天下午写东西的时候遇到一个很奇葩的问题:
为了实现一键换肤功能(为了简单化,其实就是换一下每个控制器的背景图片)
我创建了一个基类控制器BaseViewController,在BaseViewController上添加一个UIImageView(对,它就是背景图片)
然后以后创建的每个子控制器都是继承于这个基类的,而且部分的子控制器是用过storyboard搭建的,这时候问题就出现了!!!

问题就是:
模拟器跑起来之后,整个界面显示出来的效果就是一张图片,一张傻了吧唧的图片!!!
通过storyboard搭建的子控制器的视图控件都跑哪儿去了?我一看层次关系发现:是先加载了storyboard上的视图控件,最后又加载了基类的UIImageView,我们看到的效果就是子类被覆盖,只剩下一张图片。

解决方法:
在子控制器的- (void)viewWillAppear:(BOOL)animated方法中添加:

[self.view sendSubviewToBack:self.baseImageView];

将视图推到后面。
详细讲解UIView的博客地址:
http://www.cnblogs.com/dyllove98/p/3144945.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,221评论 4 61
  • 86 忙碌状态也只是重复着每一天 时光倒流我会回到什么时候 不知道什么时候喜欢上了小说 在外的几年没事就是看小说 ...
    馨之芬芳阅读 1,241评论 0 1
  • 感冒了
    想想家阅读 786评论 0 0