2014-10-27 89 views
0

当我想为视图控制器设置ID时,我进入故事板文件,选择ViewController,然后在身份检查器中输入Storyboard ID,类似“theVCID”:避免在2个位置硬编码故事板ID

enter image description here

当我要使用视图控制器在代码中我做类似:

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

有没有办法我只能硬编码在一个位置,这个ID字符串,而不是硬编码它内幕板,当我在代码中使用它?

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

回答

1

不幸的是,你被迫重复声明。

我不会推荐解析XML,因为您将基于假设的实现细节。从技术上讲,故事板可能会改变他们的数据类型在未来的任何事情,这会破坏你的实现。

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

+0

我没有真正谈论解析XML,但你提出了一个很好的观点至于为什么这将是不好的。我问是否有办法在XML源代码中访问变量。就像:' 2014-10-28 13:44:44