提问者:小点点

没有情节提要或xib文件的iOS通用应用程序


我有一个关于通用应用程序的问题。我的应用程序将没有故事板或xib文件。如果没有它,是否有可能编写通用iPhone/iPad应用程序?我找到了一些如何使用故事板创建通用应用程序的教程,但我不想(我不能)在我的项目中使用此功能。

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

我的目标是iOS 5。

编辑:

我在资源文件中有一个屏幕信息,我的rootViewController或任何其他ViewController将在编译时创建,所以我不能有xib文件,我不能用界面生成器在xib上放置按钮,因为我甚至不知道我将有多少个按钮。我不知道我有多少屏幕,直到我在我的项目中点击运行。


共2个答案

匿名用户

你不仅可以在没有界面生成器的情况下编写任何类型的iOS应用程序,实际上它更易于测试和使用。在IB风格的项目中,一些<code>自动布局</code>技巧也很难(不可能?)。

有一个令人印象深刻的库,名为Masonry,它包装了NSLayoutContrint语法。这使得在不必使用难看的VFL或极其冗长的<code>NSLayoutContrint</code>语法(甚至不需要处理帧设置…blech!)的情况下对视图进行子类化非常令人愉快。IB风格的应用程序也会促进不良的软件开发实践和反模式(只需在视图控制器表示方式中转储所有内容。无需分离关注点!)。此外,由于合并问题,在使用Nibs、Xibs和Storyboards的同时,在更大的团队(IMHO甚至是小团队)上工作更困难。

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

匿名用户

这当然是可能的,在我发布的众多应用中,我只用过一次storyborads。至于不使用xib,我不知道你为什么要这样做。您可以在运行时在init方法中展示您的视图,但是我觉得这样做对您自己来说太难了。您可以为iPad设置一个XIB,为iPhone设置一个,这样您就可以为每台设备定制特定的用户界面。

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

祝你好运