避免在2个地方硬编码故事板ID

时间:2014-10-27 18:36:51

标签: ios objective-c iphone uiviewcontroller storyboard

当我想为视图控制器设置ID时,我进入故事板文件,选择ViewController,然后在Identity检查器上,我在Storyboard ID中输入类似于" theVCID" :

enter image description here

当我想在代码中使用View Controller时,我会做类似的事情:

UIViewController *myVC = [myStoryboard instantiateViewControllerWithIdentifier:@"theVCID"];

有没有办法可以在一个位置硬编码这个ID字符串,而不是在故事板中对它进行硬编码以及何时在代码中使用它?

如果我可以在storyboard XML中获取变量,我可以在XML源代码中获取硬编码字符串变量,但我不知道如何/在何处设置变量以便故事板XML可以访问它

1 个答案:

答案 0 :(得分:1)

不幸的是,您被迫复制声明。

我不建议解析XML,因为您将基于实现细节的假设。从技术上讲,故事板可能会在未来将其数据类型更改为任何内容,这会破坏您的实施。

最安全的方法是将故事板标识符保存在一个类(比如StoryBoardCoordinationController)中,并通过这个单一界面简单地引用storyboard对象。希望你永远不应该处于这些价值观经常发生变化的情况下,如果它们是你们,你们一定要寻求对此做些什么:)