2012-07-03 61 views
4

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

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

我针对到iOS 5

编辑:

我有资源文件的屏幕信息和我的RootViewController的或任何其他的ViewController将在编译时创建的,这样我就可以”没有这个xib文件,我不能把按钮放在界面生成器的xib上,因为我甚至不知道我会在那里有多少个按钮。我不知道我有多少屏幕,直到我在我的项目中运行。

+0

您可以尝试[this](http://stackoverflow.com/questions/8274899/making-universal-apps-without-interface-builder),[this]( http://stackoverflow.com/questions/4418736/creating-a-universal-window-based-iphone-app-without-generated-xib-file)或者[this](http://www.ke-cai。 net/2011/05/create-ios-universal-app-without-nibxib.html) – Adam

+2

只需在C中编写应用! http://stackoverflow.com/questions/10289890/how-to-write-ios-app-purely-in-c/10290255#10290255 @亚当在未来,请在下一次将所有的dupe链接在一个帖子。“ –

回答

4

这当然是可能的,我只在我发布的许多应用程序中使用过故事情节。至于不使用XIB,我不确定为什么你想这样做。你可以在运行时用init方法布置你的视图,但是我觉得这样做只会让你自己变得过分困难。您可以为iPad设置XIB,为iPhone设置XIB,以便您可以针对每个设备量身定制UI。

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

祝你好运。

+1

+1”不知道你为什么要这样做“ – Dustin

+1

我必须这样做,因为在运行时,我可能不知道什么是我的根屏幕应该看起来像。我不是说在表格视图中记录。这可能是tableView,scrollView等等,等等.. – Kuba

+0

我刚刚编辑我原来的帖子。据我了解,这个项目我不能使用XIB或故事板。 – Kuba

5

您不仅可以编写任何类型的iOS应用程序,而且不需要Interface Builder,它实际上更具可测试性和灵活性。一些auto layout技巧在IB风格的项目中也很难(不可能?)。

有一个令人难以置信的令人难以置信的库,名为Masonry,它包装了NSLayoutContraint语法。这使得在不必使用丑陋的VFL或令人难以置信的详细语法(甚至不需要解决框架设置... blech!)的情况下对子视图进行子类化是相当愉快的。 IB风格的应用程序还会促进糟糕的软件开发实践和反模式(只是在视图控制器中将所有内容倾倒在演示文稿中,而不是分散关注!)。另外,由于合并问题,在利用Nibs,Xibs和Storyboards的同时,要处理较大的团队(恕我直言,即使是小团队)也更困难。

最重要的是,当你用这种方式编写代码(再次恕我直言)时,你可以更深入地理解你正在使用的类(UIView,UIResponder等)。有一篇有趣的文章更详细地概述了其中一些问题: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