我有UIViewController
和UIView
子类(比方说ViewSubClass
)。我正在使用故事板。在mainStoryBoard.storyBord
中,我添加了一个UIView
并设置了自定义类ViewSubClass
。现在,我不想在ViewSubClass
UIViewController
中创建ViewSubClass *subClassInstance = [[ViewSubClass alloc] init]
的实例。如果不在ViewSubClass
中创建ViewController
的任何实例,我想调用initWithCoder
方法。运行我的应用程序时,应调用initWithCoder
ViewSubClass
方法。我怎样才能做到这一点?
答案 0 :(得分:4)
在视图类.m文件中添加以下代码
-(id) initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
// Initialization code
}
return self;
}
在视图类中添加文件名,如下面的屏幕截图所示。
答案 1 :(得分:1)
偶尔,我已经看到initWithCoder:
没有被调用,即使我在Interface Builder中设置了子类视图,如接受的答案中所示。
吹走XCode和模拟器的缓存解决了我的问题。
Command + Shift + k
通常足以支持XCode。
为iOS模拟器选择“重置内容和设置”: