4

我有一个关于通用应用程序的问题。我的应用程序不会有情节提要或 xib 文件。没有它有可能编写通用的 iPhone/iPad 应用程序吗?我找到了一些教程如何使用情节提要创建通用应用程序,但我不想(我不能)在我的项目中使用此功能。

如果可能,我该怎么办?如果我必须只在 ViewControllers 中进行更改?我开始这样做了,我不会改变旧项目,所以我可以做任何事情 - 我应该学习什么/我应该记住什么?

我的目标是iOS 5。

编辑:

我在资源文件中有一个屏幕信息,我的 rootViewController 或任何其他 ViewController 将在编译时创建,所以我不能有 xib 文件,我不能用 Interface Builder 在 xib 上放置按钮,因为我什至没有知道我将有多少按钮。在我的项目中运行之前,我不知道我有多少个屏幕。

4

2 回答 2

5

你不仅可以在没有Interface Builder. 在 IB 风格的项目中,有些auto layout技巧也很困难(不可能?)。

有一个令人难以置信的令人印象深刻的库Masonry,称为包装NSLayoutContraint语法。这使得对视图进行子类化非常令人愉快,而不必使用丑陋的 VFL 或令人难以置信的冗长NSLayoutContraint语法(甚至不去解决框架设置……blech!)。IB 风格的应用程序还促进了不良的软件开发实践和反模式(只是将所有内容都倾倒在视图控制器演示中。没有关注点分离!)。此外,由于合并问题,在使用 Nibs、Xibs 和 Storyboard 的同时,在大型团队(恕我直言,甚至是小型团队)上工作也更加困难。

最重要的是,在以这种方式编写代码时(再次恕我直言),您可以更深入地了解您正在使用的类(UIView、、等)。UIResponder有一篇有趣的文章更详细地概述了其中一些问题:http: //doing-it-wrong.mikeweller.com/2013/06/ios-app-architecture-and-tdd-1.html 这绝不是唯一一篇讨论这个问题的文章。此外,这将有助于您的应用程序委托:创建一个通用的基于窗口的 iphone 应用程序而不生成 xib 文件

于 2014-02-27T02:27:05.033 回答
4

这当然是可能的,在我发布的许多应用程序中,我只使用过一次故事板。至于不使用 XIB,我不确定您为什么要这样做。您可以在运行时在 init 方法中布置您的视图,但我觉得这只会让您自己过分困难。您可以为 iPad 设置一个 XIB,为 iPhone 设置一个,这样您就可以专门为每个设备定制 UI。

也许如果您更详细地了解为什么要对自己施加此要求,我们可以讨论是否值得沿着这条路付出努力。

祝你好运。

于 2012-07-03T15:25:25.080 回答