没有故事板或xib文件的iOS Universal App

时间:2012-07-03 15:21:18

标签: iphone objective-c ios

我对通用应用有疑问。我的应用程序不会有故事板或xib文件。没有它可以编写通用的iPhone / iPad应用程序吗?我找到了一些教程如何使用故事板创建通用应用,但我不希望(我不能)在我的项目中使用此功能。

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

我的目标是iOS 5.

修改

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

2 个答案:

答案 0 :(得分:5)

不仅可以在没有Interface Builder的情况下编写任何类型的iOS应用程序,它实际上更具可测试性和柔韧性。在IB风格项目中,一些auto layout技巧很难(不可能?)。

有一个名为Masonry的令人印象深刻的库,它包含了NSLayoutContraint语法。这使得子类视图非常令人愉快,而不必使用丑陋的VFL或令人难以置信的冗长的NSLayoutContraint语法(甚至不会解决帧设置......烦恼!)。 IB风格的应用程序还会促进糟糕的软件开发实践和反模式(只是在视图控制器中呈现所有内容。不需要分离关注!)。此外,由于合并问题,在使用Nibs,Xibs和Storyboard时,更难以在更大的团队(IMHO甚至是小团队)上工作。

最重要的是,当您以这种方式编写代码时,您将更深入地了解您正在使用的类(UIViewUIResponder等)(再次恕我直言) 。有一篇有趣的文章更详细地概述了其中的一些问题:http://doing-it-wrong.mikeweller.com/2013/06/ios-app-architecture-and-tdd-1.html这绝不是唯一讨论此问题的文章。此外,这将有助于您的应用代表:creating a universal window-based iphone app without generated xib file

答案 1 :(得分:4)

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

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

祝你好运。