2014-10-27 93 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