如何通过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/