2014-06-12 81 views
0

我正在嘗試創建一個功能類似於UITabBarController的類,但具有一些根本不同的功能。它被稱爲dropdownViewController,它有一個主要的內容視圖,在屏幕的頂部有一個類似於UITabBar的界面,允許其他UIViewController在這個主視圖控制器上以模態方式呈現和解散。訪問在故事板中創建的鏈接的段落

我希望這個類能夠在一定程度上使用故事板來創建,並且我創建了一個自定義Segue,它將我的dropDownViewController類與其每個子viewController連接起來。

我目前的解決方案是爲每個Segues指定標識符,然後將這些標識符存儲在dropdownViewController中的數組中。我可以使用performSegueWithIdentifer:方法以編程方式調用segues,但此解決方案不像我想要的那樣靈活或直觀。

現在,我所設置的所有自定義Segues都連接到dropdownViewController的故事板連接面板中的「手動」觸發的segue。 (我會把截圖,但是這是我的第一篇文章)

不過,我想模仿UITabBarController類的功能,它有一個備用的故事板的連接面板觸發Segue公司稱爲viewControllers,每個其子視圖分配至。除非有一些編譯時宏處理這些故事板交互,否則我認爲UITabBarController使用這些連接來確定視圖控制器是什麼。然而,我不知道如何設置這個功能,我自己的類

在搜索解決方案後,它似乎可能是蘋果公司爲自己使用而保留的功能,並且僅限於他們自己的類作爲功能在Xcode,但如果任何人有解決方案或想法,將不勝感激。

回答

0

我還沒有試過這個,但我認爲你應該可以用你自己的自定義segues來做到這一點。在perform方法中,您只需將目標視圖控制器添加到視圖控制器的源視圖控制器(DropDownViewController)數組中。在DropDownViewController的viewDidLoad方法中(或者可能在初始化程序或awakeFromNib中,不知道哪一個最合適),您可以執行所有這些segues,以便在控制器加載後立即運行,就像爲標籤欄控制器執行一樣。

+0

整潔,這將很好地工作,但我不知道的一件事是如何執行所有的segues在dropdownViewController的'viewDidLoad'方法中運行。這些仍然需要通過故事板標籤來識別,還是有辦法以編程方式訪問故事板中的所有手動觸發設置? – Aaron

+0

@kujenga,是的,我也在想這個。我唯一可以想到的方法是給你的segues連續標識符,比如vc1,vc2等,然後遍歷它們,檢查是否存在具有該標識符的segue。如果是這樣,執行它,如果沒有,退出循環,你就完成了。據我所知,沒有辦法問一個控制器它連接了多少個segues,或者得到它所有的segues的引用。 – rdelmar