将数据传递给特定的ViewController

时间:2017-02-11 07:48:29

标签: ios swift uiviewcontroller segue

图片只是一个例子......

enter image description here

所以基本上我想将数据从 RED 传递到 BLUE 但是我必须通过 GREEN ..有没有办法去将数据直接传递给 BLUE ,而不必通过 GREEN

我现在正在做的是传统方法将数据传递给 GREEN 然后让 GREEN 读取并通过它在 BLUE

但我的应用程序有很多ViewControllers,我希望能够直接将它传递到最后一页( BLUE 页面)是否有办法?对不起,我是Swift的新手

3 个答案:

答案 0 :(得分:1)

如果你尝试将数据从_Red传递到_Blue,而没有_Green - 它关于糟糕的架构,因为如果app的逻辑发生了变化,你需要改变控制器的流量 - 你会感到很头疼......

您可以将数据包装在对象中并通过,或者您可以DataController管理您的数据,ViewController'sget\set Datacontroller {{1}}接口

答案 1 :(得分:0)

使用简单的swift类,例如 Sharedclass 来设置变量,然后从相同的 Sharedclass 中获取变量的值。示例如下:

SharedClass.sharedInstance.phoneNumber = "123456"

设置变量

BLUEViewController.phoneNumber = SharedClass.sharedInstance.phoneNumber

获取变量

mysql -h 192.168.1.3 -u username -p

答案 2 :(得分: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)
    }