2010-11-10 123 views
1

我有一個iPhone應用程序可以找到附近的咖啡店,然後在ShopViewController中顯示詳細信息(地址,開放時間,WiFi可用性)。我在該項目中創建了其他幾個目標(例如超市,餐館),並且每個目標在ShopViewController中顯示的信息都略有不同。在超市裏,我想要展示酒精是否有售。在餐廳,我想顯示最後的訂單時間,等等。如何爲每個目標創建一個單獨的NIB?

我目前的解決方案不易維護。我有一個共享的NIB,每個事件都有大量的UILabel。儘管咖啡店沒有「最後訂單」信息,但我使用了與「最後訂單」UILabel相同的NIB。我所有的目標都使用「標題」標籤,但只有一個使用「酒精」標籤。我只在需要的地方使用標籤。 UILabel都設置爲空字符串,當我佈置視圖時,我忽略空標籤。但是有4個目標,很難跟蹤。

我ShopViewController有一些共享功能,所以我猜我應該製作子類,如CoffeeShopViewController,它從ShopViewController繼承。然後,我會使用#ifdef爲當前目標加載正確的NIB。然後我只能在每個目標中包含相關的子類。

這是最好的解決方案,還是有更好的方法來處理這個問題?

回答

0

如果你爲每個不同的接口有一個子類,你可以讓每個子類加載他們想要的確切的nib,避免#if預編譯器語句。但是我認爲,如果保留每個視圖控制器子類使用的一個筆尖,並且只保留這些子類中特定於目標的自定義代碼,那麼從長遠來看,實際上它會更簡單。如果您必須對筆尖進行的自定義功能非常廣泛,那麼創建一堆筆尖只會對您有用。

相關問題