如何通过JSON数据在迅速应用的两个viewcontrollers

问题描述:

我需要通过JSON data.I帮之间有这样的阵列如何通过JSON数据在迅速应用的两个viewcontrollers

var TableData:Array<String> = Array <String>() 

在JSON数据在这阵我有姓名,地址,经纬度

我在tableView中显示名称和地址,但我想创建注释在不同的viewController与纬度和经度取决于哪个单元用户点击(名称,地址,纬度,经度shoulld是相等的),所以我问你是否有一些很好的教程,或者如果你有一些建议。 谢谢。

我会做这样的事情:

let newController = self.storyboard?.instantiateViewControllerWithIdentifier("newControllerIdentifier") as! NewControllerClassName 
newController.data = array 
self.navigationController?.pushViewController(newController, animated: true) 

它也出现您使用字符串类型的数组,用逗号分隔。 我宁愿创建类似下面

var jsonArray:[[String:String]]? 

将数据从一个swift文件传递到另一个文件有许多不同的方法。在有一个rootViewController的情况下,点击一个按钮来打开一个新的ViewController。之前在新的ViewController中定义了一个数组,可以使用prepareForSegue方法传递json解析数组。 在不同的swift文件之间传递信息的另一种流行方式是使用AppDelegate。在这里,您可以使用称为instantiateViewControllerWithIdentifier("identifier")的方法来创建不同快速类的实例。这可以通过创建故事板变量来完成,然后通过执行storyboard.instantiateViewControllerWithIdentifier("identifier")来调用此方法。

let newvc = self.storyboard?.instantiateViewControllerWithIdentifier("newvcIdentifier") as! (UIViewController extended class) 
newvc.data = TableData 
self.navigationController?.pushViewController(newController, animated: true) 

其中NEWVC具有声明为变量如下:

var data: Array <String>! 

可以使用具有被在所有使用单类的共享数据的另一方法。在swift3中可以非常简单地创建一个单例,细节请看here

class JSONData { 
    var json: Array <String> 
    static let sharedInstance = JSONData() 
} 

在继续下一个vc之前,您应该将数据存储在sharedInstance类中。这应该通过重写准备方法来完成。有关此方法的文档可以发现here

sharedInstance.json = self.json 

一旦数据被在共享实例设置,新视图控制器被加载之后,该数据可通过sharedInstance.json被访问。

希望这适用于你,只是评论,如果你有任何其他问题!

,所以我问你一个变量如果在迅速

http://matteomanferdini.com/how-ios-view-controllers-communicate-with-each-other/

他介绍了干净的代码和最佳实践,一些很好的教程。在实施任何事情之前最好阅读一下。

,或者如果你有只是一些建议

你的代码需要清洁。将纬度作为字符串传递会在稍后为您创建问题(转换,代码理解甚至是错误)。 在这里创建一个新帐户并观看Bob叔叔。他的课程很有价值。上面的matteomanferdini遵循叔叔鲍勃的做法。 https://www.safaribooksonline.com/library/view/clean-code/9780134661742/