使用笔尖重复使用ui组件

时间:2013-06-18 21:32:10

标签: ios xib

我喜欢使用界面构建器来设计ui元素,但我正在设计一个屏幕,其中根据条件显示不同的子视图。对我来说,更容易在单独的nib文件中设计这些子视图,然后在需要时将它们加载到视图控制器中。

e.g。我有以下活动视图,它是延迟加载的,它基本上是一个显示活动指示符的叠加层,我希望选择在不同的视图控制器中重用它。

以下是其中一个视图控制器中的getter方法

- (ActivityView *)activityView
{
    if (!activityView) {
        activityView = [[[UINib nibWithNibName:@"ActivityView" bundle:nil]
                instantiateWithOwner:self options:nil] lastObject];
    }
    return activityView;
}

在nib文件中我没有设置所有者以匹配视图控制器,因为我希望多个视图控制器能够使用它,但我将顶级视图链接到ActivityView类,以便我可以自定义它的一些ui以编程方式。

这种方法似乎对我有用,但我想知道这是否是一个好方法?

在资源编程指南中,它说:

重要说明:您负责释放在完成这些对象后加载的任何nib文件的顶级对象。不这样做是许多应用程序中内存泄漏的原因。释放顶级对象后,最好通过将它们设置为nil来清除指向nib文件中对象的任何出口。您应该清除与所有nib文件对象关联的出口,而不仅仅是顶级对象。

如果我有ARC以及我需要做些什么,我不确定这是否仍然适用?

这是否意味着我需要在didReceiveMemoryWarning方法中设置self.activityView = nil?

0 个答案:

没有答案