我怎么知道我需要多少个出口?

时间:2011-09-01 19:32:10

标签: iphone ios

如何通过查看完成的App Design来了解您需要多少个出口?

我知道outlet是你创建并希望连接到nib文件中的对象的ivar。

4 个答案:

答案 0 :(得分:1)

统计他们。

但更严重的是,如果需要从UIViewController引用UI元素,则需要创建IBOutlet。如果UI元素是按钮或其他控件,则对该项的引用可以通常作为“sender”传递给action方法,您可能不需要为该元素创建IBOutlet。

例如,如果您以编程方式设置标签的文本,则可能需要为UILabel创建IBOutlet。

答案 1 :(得分:1)

对此的正确答案是,您不关心许多 IBOutlets如何 - 这个数字毫无意义。这就像在我的程序中询问我需要多少变量。

正如一些人已经指出了不同程度的准确性,如果您需要更新UI元素而不依赖于用户与该元素的交互,则需要一个插座。例如:

  • 仅在网络传输正在进行时才处于活动状态的取消按钮
  • 网络传输完成时停止的活动微调器
  • 您需要填充NSUserDefaults数据的登录字段。

我能给你的最好建议是不要再担心这个并开始编码。当你需要一个插座时,从代码中可以明显看出来。您将拥有一个需要更新UI的用户故事,为了实现这一点,您需要添加插座。

如果您真的关心这个数字,可以在应用程序发送到苹果时计算它们,并在此处回来添加您自己的答案:-)

免责声明 - 下一部分仅供参考,我不建议您这样做: 准确地说,您不需要 任何IBOutlet与UI进行交互。您可以使用标记在运行时查找对控件(或任何UIView子类)的引用。视图的标记只是一个NSInteger proerty,您可以在视图层次结构中进行搜索。 UIView公开了一个名为- (UIView *)viewWithTag:(NSInteger)tag的方法,该方法在其所有子视图中搜索具有指定标记的视图。您可以在运行时或界面构建器中设置标记。当然,使用标签既是运行时(处理)开销,也更难以使用出口维护。

答案 2 :(得分:0)

这取决于您要在视图中显示的项目。如果要在视图上显示3个项目,则需要添加3个IBOutlets

但如果您没有使用.nib file,则无需这样做,因为您可以通过编程方式将其作为子视图添加到self.view

答案 3 :(得分:0)

如果您需要修改代码中的接口对象,则只需要出口。那么问题是你对视图有多少个独立的动态项目?那能回答你的问题吗?