我有UIViewController和UIView子类(让我们说ViewSubClass)。我正在使用故事板。在mainStoryBoard.storyBord中,我放了一个UIView并设置了自定义类ViewSubClass。现在我不想创建ViewSubClassin UIViewControllerlike的实例ViewSubClass *subClassInstance = [[ViewSubClass alloc] init]。在不创建 in 的任何实例的情况下ViewSubClass,ViewController我想调用initWithCoder方法。当我运行我的应用程序时,应该调用initWithCoder方法。ViewSubClass我怎样才能做到这一点?
4352 次
2 回答
4
在您的视图类 .m 文件中添加以下代码
-(id) initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
// Initialization code
}
return self;
}
并在视图类中添加文件名,如下图所示。

于 2013-10-03T10:59:44.633 回答
2
initWithCoder:有时,即使我在 Interface Builder 中设置了子类视图,如已接受的答案所示,我也看到没有调用。
吹走 XCode 和模拟器的缓存为我解决了这个问题。
Command + Shift + k通常对于 XCode 来说已经足够了。
为 iOS 模拟器选择“重置内容和设置”:

于 2015-05-26T23:26:24.423 回答