子控制器被基类控件覆盖
2016-05-22 本文已影响30人
Freedom_fly
基类上添加的控件延后显示问题
今天下午写东西的时候遇到一个很奇葩的问题:
为了实现一键换肤功能(为了简单化,其实就是换一下每个控制器的背景图片)
我创建了一个基类控制器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