2017-02-11 62 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

嗯,我不认为有这样做的直接方式。因为必须加载视图才能填充其属性。也许你可以将数据包装在一个对象中。但视图仍然需要加载。 –

相关问题