当我在与故事板相关联的NSInternalInconsistencyException
中编写以下代码时,我遇到了异常“viewcontroller
”:
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
self.view.backgroundColor = [UIColor blackColor];
}
return self;
}
但是,如果我删除“self.view.backgroundColor = [UIColor blackColor];
”行,则没有问题。我不知道原因。
实际上,在stroyboard中我有几个控制器,我想为所有控制器制作一个基本控制器。目的是我想为他们设置一个背景视图(UIView)。
我尝试在basecontroller的UIView
方法中添加viewDidLoad
,但该视图涵盖了故事板中设置的所有组件。我认为原因是子视图控制器上的组件在调用'initWithCoder
'方法之前在'ViewDidLoad
'方法中初始化。所以我尝试在basecontroller的'initWithCoder'方法中添加bgView,这导致了上面的问题。
所以我也想知道实现目标的正确方法。谢谢!
答案 0 :(得分:1)
不要在init中设置与图形相关的属性,并将子视图放在前面。从
设置它们-(void)awakeFromNib
{
[self.view.superview bringSubviewToFront:self.view];
self.view.backgroundColor = [UIColor blackColor];
}