圖片只是一個例子...將數據傳遞給特定的ViewController
所以基本上我想從RED到BLUE傳遞數據,但我必須要經過GREEN ..有沒有辦法只是通過數據直接藍沒有它必須經過GREEN?
我現在正在做的是數據傳遞給GREEN然後有GREEN閱讀並把它傳遞給BLUE
但我的應用程序有很多的傳統方法ViewControllers
,我希望能夠通過它直接到最後一頁(藍色頁)有沒有辦法?對不起,我是新來的斯威夫特
圖片只是一個例子...將數據傳遞給特定的ViewController
所以基本上我想從RED到BLUE傳遞數據,但我必須要經過GREEN ..有沒有辦法只是通過數據直接藍沒有它必須經過GREEN?
我現在正在做的是數據傳遞給GREEN然後有GREEN閱讀並把它傳遞給BLUE
但我的應用程序有很多的傳統方法ViewControllers
,我希望能夠通過它直接到最後一頁(藍色頁)有沒有辦法?對不起,我是新來的斯威夫特
如果您嘗試將_Red的數據傳遞給_Blue,而不是_Green - 它關於糟糕的體系結構,因爲如果應用程序邏輯中發生了某些變化,並且您需要更改控制器流量 - 會覺得有很多頭疼的......
可以在對象包裝你的數據,並通過也可以使DataController
將要管理你的數據,你的ViewController's
將get\set
它由Datacontroller
接口
使用一個簡單的快速類,例如共享類設置一個變量,然後得到vari的值能夠從相同的Sharedclass。示例如下
import Foundation
class SharedClass {
static let sharedInstance = SharedClass()
var phoneNumber = ""
}
給出要設置可變的
SharedClass.sharedInstance.phoneNumber = "123456"
爲了得到可變
BLUEViewController.phoneNumber = SharedClass.sharedInstance.phoneNumber
您可以直接把你的navigationController您viewControllers之一。嘗試這個;
let storyboard = UIStoryboard(name: "Main", bundle: nil)
if let blueController = storyboard.instantiateViewController(withIdentifier: "BlueViewController") as? BluewViewController {
blueController.passedData = passedData
navigationController?.pushViewController(blueController, animated: true)
}
或者你也可以直接展示它。而不是推入導航控制器。
let storyboard = UIStoryboard(name: "Main", bundle: nil)
if let blueController = storyboard.instantiateViewController(withIdentifier: "BlueViewController") as? BluewViewController {
blueController.passedData = passedData
present(blueController, animated: true, completion: nil)
}
烏爾姆,但應用程序流仍然是紅色的綠色藍..我只是想通過某些數據從紅色直接藍色.. – ducklol
嗯,我不認爲有這樣做的直接方式。因爲必須加載視圖才能填充其屬性。也許你可以將數據包裝在一個對象中。但視圖仍然需要加載。 –
看看這個答案。我無法更好地解釋它。 http://stackoverflow.com/a/15839298/7188985 –