如何在Xcode中为每个目标设置不同的Storyboard.strings到同一个故事板?

时间:2018-05-24 08:24:55

标签: ios xcode

我的项目中有多个故事板。可以说其中一个是def update_hex(i, prev_layer): if i == (len(years) - 1): ani.event_source.stop() print("End animation: Update Hex") x, y = [mm.xmin, mm.xmax], [mm.ymin, mm.ymax] x1, y1 = mm(df["LONGITUDE"][df["YEAR"] == years[i]].values, df["LATITUDE"][df["YEAR"] == years[i]].values) x += x1.tolist() y += y1.tolist() x = np.array(x) y = np.array(y) if prev_layer: prev_layer.remove() hexlayer = mm.hexbin(x, y, gridsize = 75, bins = 100, mincnt = 0, cmap = 'my_cmap', linewidth = 0) prev_layer = None ani = animation.FuncAnimation(fig, update_hex, interval = 10, frames = range(len(years)), fargs = (prev_layer, )) plt.show() 。我Main.storyboard中的硬编码字符串很少。因为我们正在尝试创建一个白色标记的应用程序,所以我已经为现有项目添加了多个目标。

现在每个目标都使用相同的Main.storyboard,因为UI没有变化。但我需要在Main.storyboard中为每个目标自定义硬编码字符串。

例如在目标A中,字符串应该说"欢迎来到A"当为TargetB字符串构建时,应该是"欢迎来到B"。

我能想到的一种方法是为每个Main.storyboard创建IBOutlet并通过添加UIComponent语句动态更新其值,或者简单的方法可以实现if else的本地化并为每个目标提供不同的Main.storyboard文件。

我更喜欢使用第二种方法,但我不知道如何实现它。任何帮助将不胜感激。这里不需要代码,因此不添加任何代码段。如果你需要项目结构的屏幕截图知道:)

1 个答案:

答案 0 :(得分:1)

  1. 为每个目标添加Localizable.strings个文件
  2. 在每个Localizable.strings文件中添加一个带有公用密钥但文本不同的条目
  3. 使用NSLocalizedString功能
  4. 设置文本

    example

    <强>更新

    您还可以为每个目标添加Localizable.strings(名称取决于您的故事板名称)文件,而不是Main.strings。在这些文件中,您可以使用{element_identifier}.text作为键为特定UI元素设置文本。您可以通过右键单击故事板找到标识符 - &gt; &#34; Open As&#34; - &GT; &#34;源代码&#34;。

    example 2