首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios loadNibNamed到超类

ios loadNibNamed到超类
EN

Stack Overflow用户
提问于 2014-04-16 15:19:50
回答 1查看 814关注 0票数 1

我有一个带有CustomClass = "BaseClass“(在XCode编辑器上配置它)的CustomClass文件,所以我可以这样做:

代码语言:javascript
复制
BaseClass *mBassClass= [[[NSBundle mainBundle] loadNibNamed:@"view" owner:self options:nil] objectAtIndex:0];

但我想知道我是怎么做到的:

我会在BaseClass上上一堂儿童课。例如,ChildClass从BaseClass扩展,并从Nib加载视图,但使用ChildClass

代码语言:javascript
复制
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控件的函数。

有什么建议吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-04-16 15:43:53

创建XIB作为图形的容器。它包含所有公共视图和功能,但不包含特定于图形的内容。

现在,当您加载NIB时,您将始终得到一个BaseClass实例。实际上,您必须始终获得一个BaseClass --您不能更改NIB中未存档的类。

图形视图不应该是BaseClass的子类。然后,应该实例化并添加适合当前情况的图形视图类,作为容器视图的子视图,容器视图属于BaseClass (容器)实例。

如果图形视图需要更改公共按钮状态,那么在将图形视图作为子视图添加时,应该向图形视图提供对BaseClass实例的引用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23113614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档