gpt4 book ai didi

ios loadNibNamed 到父类(super class)

转载 作者:行者123 更新时间:2023-11-29 10:43:57 25 4
gpt4 key购买 nike

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

BaseClass *mBassClass= [[[NSBundle mainBundle] loadNibNamed:@"view" owner:self options:nil] objectAtIndex:0];

但我想知道我该怎么做:

我会从 BaseClass 得到一个子类。例如,ChildClass 从 BaseClass 扩展,并从 Nib 加载一个 View ,但带有 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 和一些具有特定功能的子类,但所有这些 View 都有相同的 Nib 文件

我的案例中,我提出了以下观点:

(1) 一个 nib 文件,它有一些来自控件的 uibutton 和一个将包含 Core Plot Graph 的 UIView

(2) 一个名为 GraphView 的 BaseClass,它与 nib 文件匹配,并且与 uibuttons 一起工作。

(3) 一些子类,每个子类在UIView上绘制不同的图形/绘图,但是继承了uibutton控件的功能。

有什么建议吗?谢谢

最佳答案

创建您的 XIB 作为图形的容器。它包含所有常用 View 和功能,但不包含图形特定内容。

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

您的图形 View 不应是 BaseClass 的子类。然后应实例化适合当前情况的图 TableView 类,并将其添加为容器 View 的 subview ,容器 View 由 BaseClass(容器)实例拥有。

如果图形 View 需要更改通用按钮状态,那么在将其添加为 subview 时,您应该为图形 View 提供对 BaseClass 实例的引用。

关于ios loadNibNamed 到父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23113614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com