【问题标题】:Synchronizing data between landscape view and portrait view on iPad在 iPad 上的横向视图和纵向视图之间同步数据
【发布时间】:2012-07-03 19:14:42
【问题描述】:

我是 iPad 开发的新手,所以请多多包涵。我有一个只有一个 XIB 文件的 iPad 应用程序。在 XIB 中,我有两个视图,一个是纵向的,一个是横向的。

我在两个视图上都有一个简单的按钮和文本字段。

我创建了一个将文本字段更新为 HelloWorld 的方法。

在我的纵向视图中,我已经连接了 FileOwner 中的文本字段和按钮。

当我在纵向视图中运行应用程序时,我可以点击按钮,HelloWorld 会出现在文本框中。

如果我在模拟器中旋转设备,则会出现新的横向视图,但文本框为空。

所以我对这种方法有几个问题:

  1. 在为横向和纵向开发视图时,正确的方法是只创建一个 XIB 并在其中包含两个视图,然后以编程方式切换到它们?
  2. 如果这个是正确的,如何在设备旋转时同步两个视图之间的数据?

【问题讨论】:

    标签: ios ipad


    【解决方案1】:

    我只看到使用了 2 个单独的 xib,分别称为 someviewportriat.xib 和 someviewlandscape.xib,但都使用相同的控制器进行了初始化。并不是说这是正确的方法,但这是我在少数应用程序中看到的。

    对于在不同视图中具有相同数据的 2 个文本字段,您必须创建两个视图都可以访问的数据对象/模型。

    【讨论】:

      【解决方案2】:

      经过更多研究,我发现有三种方法可以处理这种情况:

      1. 自动旋转和自动调整大小
      2. 重构
      3. 交换视图

      由于我使用的是交换视图技术,您可以在 Interface Builder 中定义两个看起来完全符合您要求的视图,但这也意味着您需要为每个视图跟踪单独的 IBOutlets。虽然视图中的元素当然可以调用相同的 IBAction,但它们不能共享相同的出口,因此您可能需要在单个视图控制器中跟踪两倍的 UI 小部件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-13
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        • 2014-02-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多