【发布时间】:2017-12-10 06:09:37
【问题描述】:
我正在尝试将从地图获得的地址传递到我的另一个 Viewcontroller 并保持相同的设置(即开关仍然打开) mapVC 被命名为 MapViewController 而 tableVC 被命名为 AddTaskTableViewController .
【问题讨论】:
-
首先,确定你使用的是navigationController还是segues?
我正在尝试将从地图获得的地址传递到我的另一个 Viewcontroller 并保持相同的设置(即开关仍然打开) mapVC 被命名为 MapViewController 而 tableVC 被命名为 AddTaskTableViewController .
【问题讨论】:
对于您的第一个问题,您需要在 prepareForSegue 方法中传递数据,就像在 MapViewController 中这样
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destinationViewController = segue.destination as? AddTaskTableViewController{
destinationViewController.address = self.address// Get address from map and stored here
}
}
关于设置的第二个问题,您需要将设置保存到 UseDefaults 中,并且在加载视图控制器时,从 UserDefault 设置值。这是示例代码
UserDefaults.standard.set("address", forKey: "address")
UserDefaults.standard.string(forKey: "address")
【讨论】: