2013-10-31 88 views
0

對於我正在爲學校開發的應用程序,我有一個簡短的問題。在我的應用程序中,我們有5個用戶可以玩的獨特遊戲。然而,每場比賽有2種模式,正常和艱苦。什麼是最好的方式去做到這一點。目前我有我的第一個遊戲作爲兩個單獨的視圖控制器,並根據所需的難度(一個稱爲normal_cstars和hard_cstars)調用。我想知道這是否有效,因爲每個視圖控制器都有.h,.m和.xib。是否有可能有一個視圖控制器有兩個單獨的視圖,你將如何去完成這一點。擁有多個視圖的視圖控制器是否合適?

感謝,

瑞安黃

回答

0

當然。你可以選擇你在視圖控制器中顯示的兩個視圖中的哪一個。只需在視圖控制器中發送self.view作爲您想要使用的視圖。

構建這個方法的一種方法是擁有兩個共享相同控件的獨立視圖類。這些控件都由視圖控制器處理,而視圖則分別繪製它們自己的佈局。

不要擔心在兩個主視圖之間共享子視圖 - 或者您可以保留兩個視圖控制器,並且只有共享類構成視圖控制器的視圖和控件。僅僅因爲你有兩個視圖控制器並不意味着你必須有冗餘代碼。將事情分成獨立的類,從動畫視圖到控件。

還有很多其他的可能性。查看一些Apple的示例,瞭解如何使用多個視圖控制器。

+0

感謝您的建議,我會研究一下。 – RyanCW

0

你真的認爲你需要兩個單獨的視圖嗎? (雖然我不確定你的遊戲)

由於遊戲模式是特定於模型的,因此具有「正常」或「硬」行爲的模型實際上會在視圖中呈現遊戲。

如果不久的將來,如果你想實現一個模式「簡單」,那麼你最終會看到另一個視圖控制器,並可能會遇到代碼冗餘。

解決方案我會想:

  • 創建模型對象inheritance over composition pattern
  • 視圖控制器將更通用,並告訴視圖基於模式呈現
  • 現在,模型的基類將實現泛型方法,並且由於模型的模式爲組合,視圖將呈現遊戲對象基於它。

優點? - 我們沒有違反開放原則。

再次,有各種各樣的設計模式來實現這一點。它取決於你決定哪些適合最好的要求。

+0

感謝您的回覆! – RyanCW

相關問題