图片只是一个例子...将数据传递给特定的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 –