创建自定义 class 并从故事板添加到我的 viewcontroller?
Creating custom class and adding to my viewcontroller from storyboad?
我只是从旧项目中复制代码。我发现了一些奇怪的东西,我不知道该怎么做。我只想创建如下图所示的“图表视图模型”。我也需要一个插座。
还有对应的class。
class ChartModel: NSObject {
// .....
}
我只想知道在故事板中使用模型的目的以及如何做到这一点。
您是否曾将手势识别器放入情节提要场景中?这是完全平行的。 nib 的加载实例化手势识别器并将其附加到视图,因此您不必在代码中执行此操作。这就是这里发生的事情。
Any NSObject subclass可以实例化为nib对象。在库中查找对象:
将它从库中直接拖到场景中; select 它并在身份检查器中将其 class 更改为所需的 class (ChartModel)。
现在您面临的问题是,当实例在 nib-loading 时创建时会发生什么。在 iOS 上,除非有人保留它,否则它会在一阵烟雾中消失。通常的解决方案是你有一些其他的 nib 对象和这个对象的出口。现在,当 nib 加载时,对象被实例化并分配给另一个 nib 对象中相应的 属性。这就是您的插座所做的:
@IBOutlet var chartViewModel : ChartModel!
好的,但到目前为止,这完全等同于说
var chartViewModel = ChartModel()
只不过,我们不是在代码中实例化ChartModel,而是通过加载nib来实例化它。
那么为什么首先要这样做呢?为什么要从 nib 而不是在代码中实例化此 ChartModel?仅当 ChartModel 自身 具有可在 nib 中配置的出口时才有意义。您没有向我们展示(您只展示了 class ChartModel
声明的第一行),因此无法详细说明这种情况下的实际目的。
我只是从旧项目中复制代码。我发现了一些奇怪的东西,我不知道该怎么做。我只想创建如下图所示的“图表视图模型”。我也需要一个插座。
还有对应的class。
class ChartModel: NSObject {
// .....
}
我只想知道在故事板中使用模型的目的以及如何做到这一点。
您是否曾将手势识别器放入情节提要场景中?这是完全平行的。 nib 的加载实例化手势识别器并将其附加到视图,因此您不必在代码中执行此操作。这就是这里发生的事情。
Any NSObject subclass可以实例化为nib对象。在库中查找对象:
将它从库中直接拖到场景中; select 它并在身份检查器中将其 class 更改为所需的 class (ChartModel)。
现在您面临的问题是,当实例在 nib-loading 时创建时会发生什么。在 iOS 上,除非有人保留它,否则它会在一阵烟雾中消失。通常的解决方案是你有一些其他的 nib 对象和这个对象的出口。现在,当 nib 加载时,对象被实例化并分配给另一个 nib 对象中相应的 属性。这就是您的插座所做的:
@IBOutlet var chartViewModel : ChartModel!
好的,但到目前为止,这完全等同于说
var chartViewModel = ChartModel()
只不过,我们不是在代码中实例化ChartModel,而是通过加载nib来实例化它。
那么为什么首先要这样做呢?为什么要从 nib 而不是在代码中实例化此 ChartModel?仅当 ChartModel 自身 具有可在 nib 中配置的出口时才有意义。您没有向我们展示(您只展示了 class ChartModel
声明的第一行),因此无法详细说明这种情况下的实际目的。