2017-08-17 70 views
1

所以我有两个ViewControllers。首先(MapVC)使用地图,第二种(SettingsVC)使用许多需要应用于此地图的设置。正确的方式在iOS中传递多个协议值

我认为这将是不错的主意,创建协议一样

protocol MapSettingsDelegate: class {} 

我知道我可以在这个里面的协议指定的功能。但是当我有很多设置时我该怎么做 - 我应该如何将它们从SettingsVC传递给MapVC。

+4

定义一个结构里面? 'MapSettings' –

回答

5

例子:

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 
    } 
    ... 
} 

随意询问详情