0

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

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

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

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

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

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

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

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

2 回答 2

0

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

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

于 2012-07-03T19:53:11.287 回答
0

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

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

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

于 2012-07-03T19:53:54.633 回答