我有一个带有CustomClass = "BaseClass“(在XCode编辑器上配置它)的CustomClass文件,所以我可以这样做:
BaseClass *mBassClass= [[[NSBundle mainBundle] loadNibNamed:@"view" owner:self options:nil] objectAtIndex:0];但我想知道我是怎么做到的:
我会在BaseClass上上一堂儿童课。例如,ChildClass从BaseClass扩展,并从Nib加载视图,但使用ChildClass
ChildClass *aChild = [[[NSBundle mainBundle] loadNibNamed:@"view" owner:self options:nil] objectAtIndex:0];
ChildClass2 *anotherView = [[[NSBundle mainBundle] loadNibNamed:@"view" owner:self options:nil] objectAtIndex:0];所以,我希望有一些带有特定函数的子类的BaseClass,但是所有这些视图都有相同的Nib文件。
在(我的例子)中,我正在开发以下视图:
(1) (1) nib文件,它已经从控件获得了一些nib按钮和一个包含核心绘图的UIView
(2) (2)A BaseClass,称为GraphView,它与nib文件匹配,并与nib按钮一起工作。
(3)某些子类,每个类在UIView上绘制不同的图/图,但是继承uibutton控件的函数。
有什么建议吗?谢谢
发布于 2014-04-16 15:43:53
创建XIB作为图形的容器。它包含所有公共视图和功能,但不包含特定于图形的内容。
现在,当您加载NIB时,您将始终得到一个BaseClass实例。实际上,您必须始终获得一个BaseClass --您不能更改NIB中未存档的类。
图形视图不应该是BaseClass的子类。然后,应该实例化并添加适合当前情况的图形视图类,作为容器视图的子视图,容器视图属于BaseClass (容器)实例。
如果图形视图需要更改公共按钮状态,那么在将图形视图作为子视图添加时,应该向图形视图提供对BaseClass实例的引用。
https://stackoverflow.com/questions/23113614
复制相似问题