2010-09-03 54 views
1

作爲Xcode和Objective-C的新手我發現很難在接口構建器和Objective-C中處理基本模式的事情。我創建了一個UIViewController的子類,我想多次實例化一個網格,每一行都由這個類的一個實例控制。所以會有一個根視圖控制器(包含導航等)應該包含/生成自定義子視圖控制器的所有實例。如何以編程方式在一箇中央視圖控制器下設置多個自定義UIViewController?

現在最好的辦法是做什麼?我可以找到的所有示例都是關於導航,其中一個視圖應該替換另一個,但我希望所有viewcontroller都可以在同一個「頁面」上顯示。我是否需要爲自定義控制器創建一個nib文件?我也一直在考慮使用UITableView,但在每一行插入我的自定義視圖控制器。

任何幫助非常感謝!

回答

0

Apple的文檔建議每個屏幕使用一個視圖控制器。如果你有足夠的理由去分析你的界面並在一個屏幕上使用多個視圖控制器是可能的,但是蘋果公​​司並沒有真正設計出支持這個框架的框架,所以如果你不這樣做,你會遇到陷阱知道你在做什麼。

在這種情況下,我質疑網格中的每一行是否真的需要它自己的視圖控制器。我發現很難想象這種情況是最好的選擇,儘管如果不知道更多關於您的應用的信息,很難說。有些事情要考慮:

  • 你的自定義控制器在做什麼?它是否主要改變其相應網格行的視覺外觀?如果是這樣,也許它更適合於UIView本身的子類。

  • 如果此對象實際上充當控制器而不是視圖,請考慮將其作爲NSObject的子類實現,而不是繼承UIViewController的子類。用於屏幕的UIViewController可以捕獲事件並將它們委託給適當的自定義控制器對象,或者您的自定義視圖可以捕獲它們自己的事件並直接使用委託模式通知其關聯控制器這些事件。

  • 如果您確定自己有合理的理由將這些對象實現爲UIViewController子類,請查看我對this問題的回答。

相關問題