Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS中使用协议传递多个值的正确方法_Ios_Swift_Protocols - Fatal编程技术网

在iOS中使用协议传递多个值的正确方法

在iOS中使用协议传递多个值的正确方法,ios,swift,protocols,Ios,Swift,Protocols,所以我有两个视图控制器。第一个(MapVC)带有map,第二个(SettingsVC)带有许多需要应用于此map的设置 我认为创建这样的协议是个好主意 protocol MapSettingsDelegate: class {} 我知道我可以在这个协议中指定函数。但是,当我有很多设置时,我应该如何做?我应该如何将它们从SettingsVC传递到MapVC。示例: struct MySettings { var value1: String var value2: String

所以我有两个视图控制器。第一个(MapVC)带有map,第二个(SettingsVC)带有许多需要应用于此map的设置

我认为创建这样的协议是个好主意

protocol MapSettingsDelegate: class {}
我知道我可以在这个协议中指定函数。但是,当我有很多设置时,我应该如何做?我应该如何将它们从SettingsVC传递到MapVC。

示例:

struct MySettings {
    var value1: String
    var value2: String
    // and so on...
}

protocol MapSettingsDelegate: class {
    func settingsUpdated(newSettings: MySettings)
}
并在控制器中实现它

class MapVC : MapSettingsDelegate {
    ...
    func settingsUpdated(newSettings: MySettings) {
        // Update everything you need
    }
    ...
}
请随时询问详细信息

示例:

struct MySettings {
    var value1: String
    var value2: String
    // and so on...
}

protocol MapSettingsDelegate: class {
    func settingsUpdated(newSettings: MySettings)
}
并在控制器中实现它

class MapVC : MapSettingsDelegate {
    ...
    func settingsUpdated(newSettings: MySettings) {
        // Update everything you need
    }
    ...
}

请随时询问详细信息

定义结构<代码>映射设置定义结构<代码>地图设置