我们可以通过ObjectID访问Storyboard中的对象吗?

时间:2017-04-06 03:03:17

标签: ios objective-c xcode storyboard

我在多个场景中有一堆静态对象(UILabel,按钮,视图)。 他们没有连接到任何IBOutlet 。但是我想在appdelegate(或第一个VC)访问它们,并在加载它们之前更改它们的属性。

无论如何要做到这一点?

编辑:添加我的意图: 我其实想要制作一个多语言"多语言"应用程序。我希望能够在应用程序中更改语言。我可以通过应用storyboard的内置本地化来获取所有对象的列表(Main.strings是自动生成的)。然后我再次禁用本地化。然后从这个自动生成的文件,我希望能够根据我选择的语言将它连接到json数据。

2 个答案:

答案 0 :(得分:1)

当然可以。例如,您可以使用UIView的标签。只需在Storyboard中设置标签即可。它很容易但不太好。另一种方法是使用Accessibility。在故事板中启用并设置它。enter image description here

然后您可以通过accessibilityIdentifier属性访问它。

答案 1 :(得分:0)

我将发布我选择的"解决方案"。所以我所做的就是利用accessibilityIdentifier设置"键"用于多语言短语翻译目的。

我使用了UIView + Recursion类(你可以在SO中找到这个简单的类),并且基本上迭代特定场景中的所有对象,如果文本匹配,则在accessibilityIdentifier属性中设置键(在viewDidload或viewWillAppear或viewDidlayoutSubviews)。

通过这种方式,您可以进行语言更改"即时"在应用内,无需重新启动。

相关问题