2017-02-11 105 views
0

圖片只是一個例子...將數據傳遞給特定的ViewController

enter image description here

所以基本上我想從REDBLUE傳遞數據,但我必須要經過GREEN ..有沒有辦法只是通過數據直接沒有它必須經過GREEN

我現在正在做的是數據傳遞給GREEN然後有GREEN閱讀並把它傳遞給BLUE

但我的應用程序有很多的傳統方法ViewControllers,我希望能夠通過它直接到最後一頁(藍色頁)有沒有辦法?對不起,我是新來的斯威夫特

+0

看看這個答案。我無法更好地解釋它。 http://stackoverflow.com/a/15839298/7188985 –

回答

1

如果您嘗試將_Red的數據傳遞給_Blue,而不是_Green - 它關於糟糕的體系結構,因爲如果應用程序邏輯中發生了某些變化,並且您需要更改控制器流量 - 會覺得有很多頭疼的......

可以在對象包裝你的數據,並通過也可以使DataController將要管理你的數據,你的ViewController'sget\set它由Datacontroller接口

0

使用一個簡單的快速類,例如共享類設置一個變量,然後得到vari的值能夠從相同的Sharedclass。示例如下

import Foundation 

class SharedClass { 
    static let sharedInstance = SharedClass() 
    var phoneNumber = "" 
} 

給出要設置可變的

SharedClass.sharedInstance.phoneNumber = "123456" 

爲了得到可變

BLUEViewController.phoneNumber = SharedClass.sharedInstance.phoneNumber 
0

您可以直接把你的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) 
    } 
+0

烏爾姆,但應用程序流仍然是紅色的綠色藍..我只是想通過某些數據從紅色直接藍色.. – ducklol

+0

嗯,我不認爲有這樣做的直接方式。因爲必須加載視圖才能填充其屬性。也許你可以將數據包裝在一個對象中。但視圖仍然需要加載。 –

相關問題