2

比方说,我有一个应用程序,它在 iPhone 上显示控制器 A,在 iPad 上显示控制器 B,您可以将其视为UITableView(适用于 iPhone)和UICollectionView(适用于 iPad)。两个控制器具有相同的模型,也可以具有可以共享共享内容的相同基类。

现在在通用故事板之前,我有 2 个单独的故事板,一个用于 iPhone,一个用于 iPad,在运行时我根据设备检查并加载正确的故事板。

问题是在通用故事板中正确的做法是什么?

选项 1 - 使用一个具有 tableview 和 collection view 的情节提要,并且只为它们使用一个控制器并隐藏不必要的控制器。

选项 2 - 在这种情况下不要使用通用。

我想了解如果 iPhone 和 iPad 具有相同的 UI,我是否需要使用通用情节提要?

4

3 回答 3

3

如果 iPhone 和 iPad 的整个 GUI 不同,则应该使用两个不同的故事板。

当您的 GUI 具有相同的控件并且您只想根据屏幕框架调整控件的大小时,大小类和通用故事板很有用。

如果这只是 iPhone 和 iPad 的控件不同的一个案例,那么请做一件事:-

使用通用故事板并为 iPhone 和 iPad 创建两个 ViewController,例如:- IphoneViewController 和 IpadViewController,并在运行时检查您的设备是 iPad 还是 iPhone,并决定需要加载/推送/呈现哪个控制器。

于 2015-07-02T14:04:57.027 回答
2

你不需要在你的 iPhone 应用中有 UITableView,UICollectionView 基本上是一样的。

只需制作两种 UICollectionViewCell,您可以使一种看起来像基本的表格视图单元格,并且您可以在正确的设备上使用它们。您可能还需要第二个 UICollectionViewFlowLayout。

于 2015-07-02T13:42:42.463 回答
1

我认为您将为此使用一个情节提要并在其中创建两个单独的 VC 类,并根据您的设备类型在其中推送正确的情节提要对象。仅针对一个视图使用两个故事板并不是一个好主意,它只会浪费内存并增加您的工作量

于 2015-07-02T13:25:46.240 回答