Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我们可以通过ObjectID访问故事板中的对象吗_Ios_Objective C_Xcode_Storyboard - Fatal编程技术网

Ios 我们可以通过ObjectID访问故事板中的对象吗

Ios 我们可以通过ObjectID访问故事板中的对象吗,ios,objective-c,xcode,storyboard,Ios,Objective C,Xcode,Storyboard,我在多个场景中有一堆静态对象(UILabel、按钮、视图)它们未连接到任何IB插座。但我想在appdelegate(或第一个VC)上访问它们,并在加载之前更改它们的属性 不管怎样,你想这么做吗 编辑:添加我的意图: 我实际上想做一个定制的“多语言”应用程序。我希望能够在应用程序中更改语言。通过应用内置的故事板本地化(Main.strings是自动生成的),我可以获得所有对象的列表。然后我再次禁用本地化。然后从这个自动生成的文件中,我希望能够将它连接到基于我选择的语言的json数据 当然可以。例如

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

不管怎样,你想这么做吗

编辑:添加我的意图:
我实际上想做一个定制的“多语言”应用程序。我希望能够在应用程序中更改语言。通过应用内置的故事板本地化(Main.strings是自动生成的),我可以获得所有对象的列表。然后我再次禁用本地化。然后从这个自动生成的文件中,我希望能够将它连接到基于我选择的语言的json数据

当然可以。例如,可以使用UIView的标记。只需在故事板中设置标签。这很容易,但不是很好。另一种方法是使用可访问性。在故事板中为其启用和设置


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

当然可以。例如,可以使用UIView的标记。只需在故事板中设置标签。这很容易,但不是很好。另一种方法是使用可访问性。在故事板中为其启用和设置

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

我将发布我对“解决方案”的选择。因此,我所做的就是使用accessibilityIdentifier为多语言短语翻译目的设置“键”

我使用UIView+递归类(您可以在SO中的某个地方找到这个简单类),基本上迭代特定场景中的所有对象,如果文本匹配,则在accessibilityIdentifier属性中设置键(在ViewDiLoad或ViewWillDisplay或viewDidlayoutSubviews中)

通过这种方式,您可以在应用程序中“动态”更改语言,而无需重新启动。

我将发布我对“解决方案”的选择。因此,我所做的就是使用accessibilityIdentifier为多语言短语翻译目的设置“键”

我使用UIView+递归类(您可以在SO中的某个地方找到这个简单类),基本上迭代特定场景中的所有对象,如果文本匹配,则在accessibilityIdentifier属性中设置键(在ViewDiLoad或ViewWillDisplay或viewDidlayoutSubviews中)


通过这种方式,你可以在应用程序中“动态”更改语言,而无需重新启动。

我说的是没有IBOutlet。@GeneCode,否则我们不需要任何其他可访问性。你可以在你的
视图
s
子视图
数组中循环,查找你要查找的
可访问性标识符
。您的视图本身可能有子视图,因此您可能也需要搜索这些子视图;一般来说,IBOutlet要简单得多。@GeneCode很抱歉,我没有说应该循环使用。看看Paulw11的评论。我想IBOutlet适合较小的项目。但是想象一下一个有50个场景的应用程序,每个场景有50个静态对象。作为程序员,我懒得一个接一个地连接。XDI说没有IBOutlet。@否则我们不需要任何其他可访问性。您可以在
视图
s
子视图
数组中循环查找您要查找的
可访问性标识符
。您的视图本身可能有子视图,因此您可能也需要搜索这些子视图;一般来说,IBOutlet要简单得多。@GeneCode很抱歉,我没有说应该循环使用。看看Paulw11的评论。我想IBOutlet适合较小的项目。但是想象一下一个有50个场景的应用程序,每个场景有50个静态对象。作为程序员,我懒得一个接一个地连接。XD你应该读到这一点:在我看来,你的意图并不像是“干净”或良好的实践。使用苹果已经交给你的方法。也许我误解了你想做的事:)嘿,这是个好办法!。但我不想让用户重启应用程序时改变语言。我之前已经研究过这类事情,我注意到例如Instagram也会重启你的应用程序,他们至少应该有避免重启的解决方案(当然你可以做得比其他人更好)但话虽如此,如果要使用内部本地化,我认为没有一个干净的解决方案。换句话说,为了避免重新启动应用程序,这是一堆乱七八糟的事情:PYou应该读一读:在我看来,你的意图看起来不像是“干净”或良好的实践。使用苹果已经交给你的方法。也许我误解了你想做的事:)嘿,这是个好办法!。但我不想让用户重启应用程序时改变语言。我之前已经研究过这类事情,我注意到例如Instagram也会重启你的应用程序,他们至少应该有避免重启的解决方案(当然你可以做得比其他人更好)但话虽如此,如果要使用内部本地化,我认为没有一个干净的解决方案。换句话说,为了避免重新启动应用程序,这是一堆混乱