Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.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
Iphone 我如何知道我需要多少插座?_Iphone_Ios - Fatal编程技术网

Iphone 我如何知道我需要多少插座?

Iphone 我如何知道我需要多少插座?,iphone,ios,Iphone,Ios,你如何通过查看完成的应用程序设计来计算出你需要多少门店 我知道outlet是您创建的一个ivar,希望连接到nib文件中的对象。计算它们 但更严重的是,如果需要从UIViewController引用UI元素,则需要创建一个IBOutlet。如果UI元素是按钮或其他控件,则对该项的引用可以传递给操作方法,通常作为“发送者”,并且您可能不需要为该元素创建IBOutlet 例如,如果以编程方式设置UILabel的文本,则可能需要为UILabel创建IBOutlet。这取决于要在视图中显示的项目。如果要

你如何通过查看完成的应用程序设计来计算出你需要多少门店

我知道outlet是您创建的一个ivar,希望连接到nib文件中的对象。

计算它们

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


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

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


但是,如果您没有使用
.nib文件,这是不必要的,因为您可以通过编程将其作为子视图添加到
self.view

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

正确的答案是,你不在乎你有多少IBoutlet——这个数字毫无意义。这就像问我的程序需要多少变量

正如一些人以不同的准确度指出的那样,如果您需要独立于用户与该元素的交互来更新UI元素,那么您需要一个出口。例如:

  • 仅当网络传输正在进行时才激活的取消按钮
  • 网络传输完成时停止的活动微调器
  • 需要使用NSUserDefaults中的数据填充的登录字段
我能给你的最好建议就是停止担心这个问题,开始编码。当你需要一个插座时,从代码中可以明显看出。您将有一个需要更新UI的用户故事,为了实现这一点,您需要添加插座

如果你真的关心这个数字,你可以在应用程序发布到苹果时数一数,然后回来在这里添加你自己的答案:-)

免责声明-下一节仅供参考,我不建议您这样做:
准确地说,您不需要任何iboutlet与UI交互。您可以在运行时使用标记定位对控件(或任何UIView子类)的引用。视图的标记只是一个NSInteger程序,您可以在视图层次结构中搜索它
UIView
公开了一个名为
-(UIView*)viewWithTag:(NSInteger)tag
的方法,该方法在其所有子视图中搜索具有指定标记的视图。您可以在运行时或在interface builder中设置标记。当然,使用标签不仅是一种运行时(处理)开销,而且使用outlets维护起来更为困难。

仅仅因为项目位于nib中并不意味着您需要为其创建IBOutlet。那么您将如何将它们连接到nib|您不必总是从视图控制器中引用它们。视图nib文件中的静态内容不需要IBOutlet。控制元素也不会将它们自己的引用传递给它们调用的操作方法。我同意你对这两种情况的看法。关于这些,您是对的。但是对于其他人,您需要从文件所有者连接出口。您也可以在IB中将两个uicontrol相互连接。没有硬性规定她。+1 re:“数一数”。对于IBOutlet,正确。尽管如此,我倾向于避免使用它们,而倾向于在代码中看到它们的创建/修改。因此,任何从默认阶段更改为其他阶段的元素,都需要一个出口?示例?例如,如果页面上的文本根据状态而变化,那么需要一个IBOutlet。如果您有一个保持不变的图像,您可以将其插入.nib中,而不需要IBOutlet。如果您有一个永远不会改变状态或文本的按钮,那么您不需要IBOutlet,只需将其放入NIB并添加IBAction处理程序即可。如果您想禁用按钮或更改文本,则需要一个IBOutlet。为什么在需要使用RootController的多视图应用程序中需要一个outlet?我不理解这个问题,抱歉。