0

我用 Xcode 做了一个主从应用程序。不,我有以下问题/问题。

如果您按下“添加”按钮的顶部,我想创建一个新视图。我发现了它是如何以编程方式工作的。

UIViewController *addView = [[UIViewController alloc]init];
[self.navigationController pushViewController:addView animated:YES];

但是新视图现在不存在于情节提要编辑器中。我是否还必须以编程方式创建标签、文本字段等?或者还有其他方法可以做到这一点。

问候

4

2 回答 2

0

故事板视图和以编程方式创建的视图可以很好地共存。如果您出于某种原因在故事板中需要它们,请在此处创建视图并从一开始就隐藏(并停用)它。在程序中,而不是创建一个新的,只需取消隐藏并激活它。

但是,没有理由不以编程方式创建它。

故事板的工作原理是这样的:每个视图都有一个相应的格式nib文件,称为。加载视图时会加载此 XML 文件。您在 IB/Storyboard 中所做的所有视图和设置都以 XML 格式存储在那里。然后框架通过文件中的条目工作,并通过使用文件中的设置以编程方式为您创建视图。XMLxibXMLxml

所以最后,以编程方式创建的视图与通过情节提要创建的视图没有太大区别。

对于以编程方式创建的视图:

  • 你不需要财产。
  • 如果需要,则无需标记为IBOutlet
  • 以编程方式创建的视图的属性应该是strong. IB/StoryboardIBOutlet视图属性可以是weak.
  • 故事板并不“认识”它们。因此,您无法将故事板中的 segues 链接到相关操作等。但是您可以通过编程方式调用 segues,故事板将继续运行。
于 2013-04-16T07:35:15.253 回答
0

以编程方式创建的视图不会显示在故事板上。

如果它只是您想要创建的一次性视图,您可以将其添加到情节提要中,设置所有属性和子视图,将其设置为hidden并将其绑定到 ivar。这样您就可以通过 ivar 访问它,并设置hiddenno您想要显示它的时间。您可以尝试其他方法,但这很好也很容易。

于 2013-04-16T07:24:48.907 回答