Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用NIB的可重用ui组件_Ios_Xib - Fatal编程技术网

Ios 使用NIB的可重用ui组件

Ios 使用NIB的可重用ui组件,ios,xib,Ios,Xib,我喜欢使用interface builder设计ui元素,但我正在设计一个屏幕,其中根据条件显示不同的子视图。对我来说,在单独的nib文件中设计这些子视图,然后在需要时将它们加载到视图控制器中更容易 e、 g.我有以下惰性加载的活动视图,它基本上是一个显示活动指示器的覆盖,我希望在不同的视图控制器中重用该选项 下面是其中一个视图控制器中的getter方法 - (ActivityView *)activityView { if (!activityView) { activ

我喜欢使用interface builder设计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文件的顶级对象。在许多应用程序中,如果不这样做,会导致内存泄漏。释放顶级对象后,最好将指向nib文件中对象的所有出口设置为nil,以清除这些出口。您应该清除与所有nib文件对象关联的出口,而不仅仅是顶级对象

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

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