处理故事板场景中更改单个UIView的正确方法是什么

时间:2012-07-07 03:15:45

标签: objective-c ios uiview uiviewcontroller uistoryboard

假设我有一个场景,其中包括屏幕上半部分的UIView容器,屏幕下半部分的UIView容器以及屏幕最下方的几个按钮。

基本上底部容器将始终显示静态文本,而底部的按钮将更改顶部容器的内容,其中可能包括图像,更多按钮或更多文本,具体取决于底部按下的按钮。此外,每次按下底部按钮时,顶部容器将从底部过渡转换到新视图。

我已经完全以编程方式实现了这一点,但我决定将我的应用程序转换为故事板文件,因为它使我的应用程序的其余部分更快更简单,并且使代码看起来不像是一个疯狂的混乱。

我对故事板的有限理解似乎推断出我需要为每个UIView更改单独的故事板场景,Apple的故事板编码惯例似乎暗示我们应该在每次创建新场景时使用新的ViewController。所有这些加起来比我现在更加混乱。

有更好的方法吗?我误会了什么吗?如果我不感到困惑,是否有某种方法可以使所有这些场景和控制器复制更清洁?

2 个答案:

答案 0 :(得分:1)

故事板编辑器使您难以完成您所描述的内容,因为它不允许您编辑与场景相关的独立视图。

我建议您为每个上半部分视图创建一个单独的笔尖(不是故事板)。这些可以与故事板分开存在。然后,您的视图控制器(从故事板中实例化)可以在按下按钮时加载它所需的任何笔尖,并将视图从笔尖放入其(视图控制器的)顶级视图中。

答案 1 :(得分:1)

一定有办法!

我不小心打开了一天(见附图)。虽然我不知道我是如何做到的并且真的很想知道,但我不能重现它,也不能关闭它。当我将表头视图的连接从Connections Inspector拖动到屏幕左侧的控件列表(而不是实际的UIViewController)时,UIView打开了。

我也正在使用故事板重新编写项目,并且每个UIViewController都有一个类似的问题。

在这种情况下,它是一个表头。我在项目中有其他UIViewControllers具有相同的配置,但我也无法让它们弹出。

enter image description here