【问题标题】:What is the proper way to deal with changing a single UIView within a storyboard scene在情节提要场景中更改单个 UIView 的正确方法是什么
【发布时间】:2012-07-07 03:15:45
【问题描述】:

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

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

我完全以编程方式实现了这一点,但决定将我的应用程序转换为故事板文件,因为它可以更快、更简单地生成应用程序的其余部分,并且使代码看起来不像是一团糟。

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

有没有更好的方法来做到这一点?我是不是误会了什么?如果我不感到困惑,有没有办法让所有这些场景和视图控制器重复更干净?

【问题讨论】:

    标签: objective-c ios uiview uiviewcontroller uistoryboard


    【解决方案1】:

    情节提要编辑器使您难以完成您所描述的操作,因为它不允许您编辑与场景关联的独立视图。

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

    【讨论】:

    • 谢谢,我担心这就是答案:(
    【解决方案2】:

    一定有办法!

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

    我也在用故事板重新设计一个项目,并且每个 UIViewController 有多个视图也有类似的问题。

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

    【讨论】:

    • 如果您从 IBAction 插座的代码定义中拖动并在独立视图中的按钮上方暂停片刻,它将闪烁然后在情节提要上打开视图 - 至少在 Xcode5 之前。自从升级到 Xcode5 后,我还没有弄清楚如何触发此功能 :( 请参阅:stackoverflow.com/questions/19097854/…
    猜你喜欢
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    相关资源
    最近更新 更多