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