注意:我不是在談論Master-Detail SplitViews!設置場景的母版頁
有一個類似這樣的問題(Master page concept in Iphone development),但問題只涉及標準功能,而不是佈局本身。此外,答案僅顯示如何避免重複的代碼,但您仍然必須在每個場景上鍊接IBActions。也許我們可以擴展鏈接的問題,並發現一些更好的解決方案:-)
所以,我想爲我的應用程序中的所有場景/視圖控制器定義一個母版頁。例如在網頁開發中這是一個常見的任務(即ASP.NET Masterpages)。
母版頁將包含實際佈局(背景顏色,標題所在的位置,內容的位置等)以及所有場景中的標準功能(打開菜單,返回,打開幫助頁面等)
使用Interface Builder(有或沒有Storyboard),最好的方法是什麼?
這裏是我的想法:
選項1:子類的UIViewController標準的特點,在每一個場景/視圖 - 控制copypaste公共佈局。
優點:相當容易使用,只需複製所有控件,在IB中設置父類並連接標準功能按鈕。
缺點:如果你有很多場景,你會很容易忘記連接標準功能。如果由於任何原因主佈局發生變化,您就會被擰緊。
選項2:無論是佈局和功能在一個地方進行處理,並容易改變:子類的UIViewController,在viewDidLoad
,在這裏你還設置了事件目標
優勢加上佈局編程的地方。
缺點:您需要以編程方式設置佈局,如果您在其他地方使用IB,則不一致。您在IB看不到主佈局,所以您必須「想象」它在IB中配置場景的其餘部分。 如果沒有故事板,您可以使用XIB來設計內容視圖,但是您從未在IB中擁有「整個圖片」。此外,這不適用於故事板。
這兩個選項對我來說都不是很優雅。你做什麼方法(這是一個常見問題!)?
你的想法與UICollectionView是聰明的。然而,在iOS5/6中,有一些UIContainerViews我認爲正是我想要的。 UICollectionView把我帶到那裏,所以我接受你的答案。謝謝! – JiaYow