ios - 通用应用程序 - View Controller -> 每个设备一个?

标签 ios objective-c uiviewcontroller

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

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

这是我能想到的 3 个,即使它们基本相同但实现不同。我个人喜欢代表,但我对此完全是新手,我正在寻求您的建议。我正在以正确的方式思考这个问题,或者还有其他方法或最佳实践吗?

最佳答案

我将为适用于 iPad 和 iPhone 的所有代码创建一个基本 View Controller ,然后为从基本 View Controller 继承的每个代码创建一个单独的 View Controller 。这样,您只需重写包含设备特定代码(通常是 UI 相关代码)的方法。

关于ios - 通用应用程序 - View Controller -> 每个设备一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15937808/

相关文章:

ios - 子类化 UITableViewCell 不显示添加的样式

iOS 在 swift 主 StoryBoard 之前创建一个欢迎页面

ios - UITableView ScrollView 不会到框架顶部

ios - 如何使用 UIImagePickerController 呈现 ViewController

iphone - UI TableView 单元格在 swift 中使用 coredata 打开包含多个数据的新 View

ios - 将新选项卡添加到选项卡栏 Controller

objective-c - 捕获导出/部署的 OSX 应用程序中的日志(错误、警告)

ios - 在iOS 7中阻止传入的短信

objective-c - 如何在viewcontroller中使用TableView?

ios - swift plist 解码器全局 Spritekit