代码之家  ›  专栏  ›  技术社区  ›  nevan king

如何为每个目标创建单独的笔尖?

  •  1
  • nevan king  · 技术社区  · 14 年前

    我有一个iPhone应用程序,它可以找到附近的咖啡店,然后在ShopViewController中显示详细信息(地址、营业时间、WiFi可用性)。我在项目中创建了几个其他目标(例如超市、餐厅),每个目标在ShopViewController中显示的信息略有不同。在超市里,我想展示一下酒是否可以出售。在餐厅里,我想展示最后的点菜时间,等等。

    我目前的解决方案不易维护。我有一个共享的笔尖,有很多 UILabel 对每一个不测事件。尽管咖啡店没有“最后的订单”信息,我还是用同样的笔尖和“最后的订单” UILabel公司 . 我的所有目标都使用“标题”标签,但只有一个使用“酒精”标签。我只在需要的地方在目标中使用标签。这个 UILabel公司 s都是用空字符串设置的,当我布置视图时,忽略空标签。但有了4个目标,就很难跟踪了。

    我的ShopViewController有一些共享功能,所以我想我应该创建子类,比如CoffeeShopViewController,它继承自ShopViewController。那我就用一个 #ifdef 为当前目标加载正确的笔尖。然后我只能在每个目标中包含相关的子类。

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

    1 回复  |  直到 12 年前
        1
  •  0
  •   Ryan    14 年前

    如果每个不同的接口都有一个子类,那么可以让每个子类加载它们所需的精确nib,从而避免使用If预编译语句。但我认为从长远来看,如果您保留每个视图控制器子类使用的一个nib,并且只保留这些子类中特定于目标的定制代码,那么它实际上会更简单。创建一堆nib只有在需要对nib进行真正广泛的定制时才有用。