子控制器被基类控件覆盖

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

上一篇 下一篇

猜你喜欢

热点阅读