我的故事板:可以嵌入在NavigationVC集中的視圖作爲直接從主控的splitVC輪詢的細節嗎?
SplitViewController - NavigationController - (Master) CalculatorViewController
I
NavigationController - (Detail) GraphViewController`
我試圖建立一個代表從(詳細信息)是從(主)提取數據 - 但我似乎無法得到(主)本身設置爲代表:
我從詳細信息視圖中嘗試,在didLoad():graphView.calcDataSource = splitViewController?.viewControllers.first as CalculatorViewController
,但它通過展開一個零崩潰 -
如果我嘗試設置graphView.calcDataSource = self
在didLoad()在Master端,我得到"Use of unresolved identifier graphView"
什麼是正確的方法來做到這一點?
========
已解決!
(與按鈕故事板賽格瑞稱爲「顯示圖形」)
//CalculatorViewController.swift:
override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject!) {
if (segue!.identifier == "Show Graph") {
var yourNextViewController = (segue!.destinationViewController as UINavigationController)
var detail = yourNextViewController.viewControllers[0] as GraphViewController
var tempview = detail.view // FORCES THE VIEW object into existence, without this it will compile, but next line will crash at runtime (graphView nil)
detail.graphView.calcDataSource = self
}
}
注意var tempview = detail.view
是這裏的關鍵,儘管沒有被使用。我明白,因爲它建立的觀點和插座..
新的swift,有沒有一種簡單的方法來弄清楚如何實例化視圖? (在代碼本身中找不到有關NavigationControllers或SplitViewController的任何指示,這些都是在故事板中完成的) – John
研究將prepareForSegue添加到您的代碼中。在那裏設置一個斷點以確保它正在被擊中並在那裏建立你的主/細節連接。 – Boon
Detail視圖是在屏幕上顯示的第一個東西。從打印輸出中,CalculatorVC在splitViewController中正確設置,但隨後調用細節SOMEHOW ....我似乎無法弄清楚發生了什麼,它可能來自故事板UISplitView嗎? _to澄清_:我沒有使用任何手動分配的賽段,這一切都來自故事板。 – John