我有一个iOS应用程序,它使用了一些包含大量元素的viewcontrollers。我在界面构建器中(在故事板中)构建了viewcontrollers。对于一些关键元素(登录按钮,重要文本等),我创建了一个IBOutlet,以便能够在我的代码中使用这些元素(主要调整文本/图形)。
对于我需要快速修复的其他一些(例如我以编程方式显示和隐藏的活动指示器),我选择不创建IBOutlet,而是给它们一个标签号并通过viewWithTag:(NSInteger)
方法访问它们。
这似乎对我有用(这只是我的第二个iOS项目,所以这可能是完全错误的)。但是现在视图控制器变得越来越复杂,我发现很难记住我已经用于标签的数字。除了通过所有元素并检查他们的标签之外,有没有办法跟踪这个?
也许以这种方式使用标签都是错的,在这种情况下也很好。我可以查看它们一次,只为我现在使用标签的所有情况创建IBOutlets。
答案 0 :(得分:5)
我会尽量避免使用view tags
。
使用properties
和data models
代替标记,总有其他(并且几乎总是更好)的方法可以做同样的事情。
这篇文章是我发现的一些很好的例子,说明为什么他们不是一个好主意... http://doing-it-wrong.mikeweller.com/2012/08/youre-doing-it-wrong-4-uiview.html
如果您需要访问UI元素,请在需要它的类的界面中为其创建IBOutlet
。
或者,如果有多个元素相同,那么您可以创建IBOutletCollection
,它只是一个包含链接到它的所有元素的数组。