ios - 通用 ios 应用 iPad 和 iPhone 架构

标签 ios iphone ipad

我正在创建一个通用的 iOS 应用程序。
在大多数屏幕中,我对它们中的每一个都有不同的 UI。
大约有15个屏幕。
我来自 Android,并试图为此找到最佳解决方案。

  • 在 iPhone 上我使用纵向模式。
  • 在 iPad 上我使用横向模式。
  • 我使用约束/自动布局。
  • 有些 View 有 nib,有些在代码中。
  • 因此,每个人的逻辑都有点不同。
  • iPad 有 2 个菜单,您可以从上到下和从左到右滑动。
  • iPhone 没有可拖动的菜单。
  • 两者都对服务器使用相同的 Api 调用。

  • 我看了一点堆栈溢出,并得到了一些方法:

    我应该使用 2 个不同的类和 2 个 Nib 吗?
    或者可能是 1 类有大量的 if else?
    使用不同的目标?

    其中之一是最好的方法吗?还有其他方法吗?

    different targets

    same class with if/else

    平板电脑::
    ipad

    苹果手机::
    enter image description here

    最佳答案

    当我需要设计一个通用应用程序时,我会查看我认为我需要支持的界面并尝试:

  • 自动布局约束可以处理不同的布局吗?如果这么好,我只需要一个 View 。
  • 如果 View 明显不同,我可以为 View Controller 定义一个通用的 IBOutlet/Action 接口(interface)吗?如果是这样,我可以使用一个 View Controller (它没有充满条件分支)来支持在多个 nib 中定义的 View 。
  • 如果 View 结构完全不同或呈现的 View Controller 差异很大(例如 Split View Controller ),那么我可能需要多个 View Controller ,每个 View Controller 都有自己的 View / Nib ,但这些 Controller 应该尽可能薄并共享一个公共(public)集模型、数据源、网络服务和其他业务逻辑。
  • 关于ios - 通用 ios 应用 iPad 和 iPhone 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35213112/

    相关文章:

    ios - 如果 iOS 6 中的标题很长,如何防止 UINavigationBar 项目隐藏?

    android - 处理移动应用程序后端 API 域更改 - iOS 和 Android

    ios - FitBit API集成IOS

    iphone - html css 包装器在 iphone safari 中未居中对齐

    ios - 无法滚动包含 UITextFields 的 UITableViewCells

    应用程序 openURL 委托(delegate)后未调用 iOS Google+ SignIn finishedWithAuth

    javascript - shouldStartLoadWithRequest 未在我的 iPhone 应用程序中调用

    objective-c - 不想关闭 UIPopover

    objective-c - 如何旋转 UIImage

    ios - iPad - 解析一个非常大的 json - 文件(50 到 100 mb 之间)