如何使用Master-Detail应用程序中的AddButton创建新视图

时间:2013-04-16 07:19:42

标签: iphone ios objective-c storyboard

我用Xcode制作了一个Master-Detail应用程序。 不,我有以下问题/问题。

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

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

但现在故事板编辑器中不存在新的View。我是否还必须以编程方式创建标签,textFields等?或者还有另一种方法可以做到这一点。

迎接

2 个答案:

答案 0 :(得分:0)

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

如果它只是您要创建的一次性视图,您可以将其添加到故事板,设置所有属性和子视图,将其设置为hidden并将其绑定到ivar。这样您就可以通过ivar访问它,只需将hidden设置为no即可显示它。还有其他方法可以尝试,但这很简单。

答案 1 :(得分:0)

故事板视图和编程创建的视图可以很好地共存。无论出于何种原因,如果你需要它们,那么在那里创建视图并从头开始隐藏(和停用)它。在程序中而不是创建一个新的只是取消隐藏它并激活它。

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

使用故事板它原则上的工作原理如下: 每个视图都有一个nib格式的XML文件,xib被调用。加载视图时,将加载此XML文件。您在IB / Storyboard中创建的所有视图和设置都以XML格式存储在那里。然后框架通过XML文件中的条目工作,并通过usint xml文件中的设置以编程方式为您创建视图。

因此,最后,以编程方式创建的视图与通过故事板创建的视图没有太大区别。

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

  • 您不需要财产。
  • 如果您需要,则不需要将其标记为IBOutlet
  • 以编程方式创建的视图的属性 应该是strong。 IB /故事板IBOutlet视图属性可以是weak
  • 故事板并不“了解”它们。因此,您无法链接segues 在stoyboard内相关的行动等。但你可以调用 segmatic programmaticaly to and storyboard将继续运行。