2012-06-18 27 views
6

我是一位經驗豐富的C/C++ Windows開發人員,編寫我的第一個真正的iOS應用程序。由於我不必擔心向後兼容性,因此我決定跳入並使用XCode 4.3中的新Storyboard功能。我發現的是,儘管故事板提供了在應用程序中佈置所有屏幕的承諾,包括細節和手勢,而無需編寫任何代碼,但實際情況是除非最瑣碎的程序在您運行時不起作用他們通常會以無益的錯誤信息毫不客氣地失敗。更糟的是,你不能通過代碼來看看有什麼不對,因爲沒有代碼新的iOS開發人員應該使用Storyboard和Xibs/Nib嗎?

所以我的問題是這樣的:如果一個新的iOS開發人員在第一次開發時沒有使用Interface Builder和Nibs和Storyboard,如this article所建議的那樣?

回答

4

是的!你絕對應該使用Storyboard來構建你的應用程序。關於Interface Builder的一個很好的事情是,它不會抽象出底層的概念 - 你仍然在使用與你在代碼中相同類型的對象(UIViewController,UIView等)。

這讓您仍然可以瞭解UIKit的工作原理,但體驗使用工具構建UI的好處。

有一個從去年WWDC演講,概述了您的應用程序使用故事板的基礎:

https://developer.apple.com/videos/wwdc/2011/?id=309

+0

我想相信這一點,但有一件事情故事板似乎像一個測試版產品,非常錯誤。例如:我創建了一個新的故事板Master View控制器項目。將彈出式表格視圖更改爲靜態,在4個部分輸入靜態字符串。只顯示第一部分標題,當您運行程序時,其他字符串都不顯示。正如另一張海報評論說的,有時故事板需要[tape tape](http://stackoverflow.com/questions/7921579/iphone-storyboard-editing-a-table-view)才能工作。當它甚至不能正確運行時,即使膠帶也無濟於事。 – stephmur

+0

@stephmur這是不幸的。模板中的表視圖控制器具有覆蓋表視圖數據源方法以填充它的子類。當您將表格視圖切換爲靜態時,覆蓋仍然存在。這導致了靜態表視圖的數據源被取消。 – retainCount

+0

這真的很酷,你知道了。我怎樣才能學習如何使用故事板,而無需從一開始就有深度的知識?你能推薦任何好的資源或書籍嗎? – stephmur

2

這是很主觀的,但我明確同意。如果您想了解iOS如何工作,請首先啓動UI代碼。界面構建器對於快速而準確地定位元素非常有用,但像文章中提到的那樣,在瞭解視圖和控制器如何協同工作後,您會更加高效。

+0

對不起,改變我接受的答案。我希望我可以接受他們,因爲它看起來故事板不像看起來那麼簡單,所以我可能會這樣做:提高我的常識並將其應用於我的故事板。 – stephmur

+0

也許我會學會愛一天他:) –

+0

我得到了一本書[http://www.amazon.com/iOS-Programming-Edition-Guides-ebook/dp/B007OWBAB0/ref=tmm_kin_title_0?ie = UTF8&m = AG56TWVU5XWC2&qid = 1340313206&sr = 1-1-catcorr)聲稱教授兩種方法,所以如果我墜入愛河,我會讓你知道。 :) – stephmur

相關問題