2012-07-03 98 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