2

所以我很快就会为 iOS 开发通用应用程序。我实际上从未这样做过,所以我不确定这里的最佳做法是什么,但我已经能够想到一些解决方案,而不是为每个设备使用单独的 VC。一般问题是 UI(过渡、定位、动画等),因为它因每个设备而异。我非常想避免重复的逻辑代码或为逻辑创建一些容器,因为 VC 是逻辑的地方。所以这是我的想法:

  • 代表 - 我将为每个 VC 创建协议,然后创建 2 个实现该协议的类(包含特定于设备的逻辑),在 VC 中,我将根据当前正在运行的设备应用程序将委托设置为这些类之一
  • 块 - 非常像代表,但更混乱
  • 继承 - 与委托几乎相同,但不是协议和 2 个委托类和一个 VC,而是 3 个 VC - 1. base 2. iphone 3. ipad - 2 和 3 将从 1 继承并实现/覆盖特定于设备的方法

这些是我能想到的 3 个,即使它们基本相同但实现不同。我个人喜欢代表,但我完全是新手,我正在征求你的意见。我正在以正确的方式考虑这一点,还是有任何其他方法或最佳实践?

4

2 回答 2

2

我将为适用于 iPad 和 iPhone 的所有代码创建一个基本视图控制器,然后为每个从基本视图控制器继承的单独的视图控制器。这样,您只需覆盖包含设备特定代码的方法,通常是与 UI 相关的代码。

于 2013-04-10T23:36:45.830 回答
0

在大多数情况下,您实际上并不需要创建不同的视图控制器。

如果您使用故事板,您可以为 iPhone 和 iPad 使用的通用视图控制器创建一个故事板,并为 iPhone 和 iPad 分别添加两个故事板。然后你使用 IBOutlets 在你的代码中引用。

通常你在 iPad 版本中有更多的插座,因为屏幕更大,但代码在 iPhone 版本中应该仍然可以工作。

如果在您的情况下拆分故事板还不够,我建议在 VC 类的不同文件中使用两个类别。然后将通用代码保留在普通文件中,并在类别中添加专用功能代码。

于 2013-04-10T22:51:10.680 回答