2014-01-23 28 views
1

我有一个iOS应用程序,它使用了很多元素的几个viewcontrollers。我在界面构建器(在故事板)中构建了视图控制器。对于一些关键元素(登录按钮,重要文本等),我创建了一个IBOutlet,以便能够在我的代码中使用这些元素(主要调整文本/图形)。
对于其他我只需要快速修复的人(例如我以编程方式显示和隐藏的活动指示符),我选择不创建IBOutlet,而是给他们一个标记号码并通过viewWithTag:(NSInteger)方法访问它们。如何管理iOS项目中的视图标签?

这似乎适用于我(这只是我的第二个iOS项目,所以这可能是完全错误的)。但是现在视图控制器变得更加复杂了,我发现很难记住我已经用于标签的数字。有没有什么方法可以跟踪其他情况,而不是通过检查所有元素并检查其标签?

也许这样使用标签都是错误的,在这种情况下,这也可以。我可以一次查看它们,并为现在使用标签的所有情况创建IBOutlets。

+4

我不知道。你不应该使用它们......永远。如果您依赖标签来访问不同的UI元素或从视图中提取数据,那么您做错了。我会为它们创建IBOutlets,或者如果有几个具有相同的标记,然后创建一个IBOutletCollection,它本质上是一个包含里面元素的数组。 – Fogmeister

+0

使用类公共和私有属性,@propert UIView * activityView; – santhu

+0

我完全同意@Fogmeister,你为什么要循环所有的元素来获得一个视图。这很耗时,你不应该这样做。 – rckoenes

回答

4

我会尽量避免使用view tags

通过使用propertiesdata models代替标签,总有其他(并且几乎总是更好的)方法可以做同样的事情。

下面是一篇文章,我发现与他们为什么不使用一个好主意,一些很好的例子...... http://doing-it-wrong.mikeweller.com/2012/08/youre-doing-it-wrong-4-uiview.html

如果您需要访问UI元素,然后它在创建一个IBOutlet需要它的类的接口。

或者,如果有几个元素是相同的,那么你可以创建和IBOutletCollection这只是一个数组,其中包含所有链接到它的元素。