2010-11-10 77 views
1

我有一个iPhone应用程序可以找到附近的咖啡店,然后在ShopViewController中显示详细信息(地址,开放时间,WiFi可用性)。我在该项目中创建了其他几个目标(例如超市,餐馆),并且每个目标在ShopViewController中显示的信息都略有不同。在超市里,我想要展示酒精是否有售。在餐厅,我想显示最后的订单时间,等等。如何为每个目标创建一个单独的NIB?

我目前的解决方案不易维护。我有一个共享的NIB,每个事件都有大量的UILabel。尽管咖啡店没有“最后订单”信息,但我使用了与“最后订单”UILabel相同的NIB。我所有的目标都使用“标题”标签,但只有一个使用“酒精”标签。我只在需要的地方使用标签。 UILabel都设置为空字符串,当我布置视图时,我忽略空标签。但是有4个目标,很难跟踪。

我ShopViewController有一些共享功能,所以我猜我应该制作子类,如CoffeeShopViewController,它从ShopViewController继承。然后,我会使用#ifdef为当前目标加载正确的NIB。然后我只能在每个目标中包含相关的子类。

这是最好的解决方案,还是有更好的方法来处理这个问题?

回答

0

如果你为每个不同的接口有一个子类,你可以让每个子类加载他们想要的确切的nib,避免#if预编译器语句。但是我认为,如果保留每个视图控制器子类使用的一个笔尖,并且只保留这些子类中特定于目标的自定义代码,那么从长远来看,实际上它会更简单。如果您必须对笔尖进行的自定义功能非常广泛,那么创建一堆笔尖只会对您有用。

相关问题