将数据从UIViewController发送到UITableViewController并以Swift格式返回
我有嵌入式导航控制器CurrentCityViewController.swift的UIViewController,它在UITableViewController CitiesListTableViewController.swift中发送数据。这是UIViewController中代码的一部分: 在UITableViewController中,我选择行。接下来,我想将行号传递回UIViewController并使用该编号。但是字符串printlnReceived index:\currentCityIndex在UIViewController中始终显示0!这是UITableViewController代码的一部分: 例如,我在UITableViewController中选择表中的第二行。发送的打印索引:\currentCityController.currentCityIndex显示为1。但是,在UIViewController行中,printlnReceived index:\currentCityIndex显示为0 为什么??怎么了?解决了!在UITableViewController中:将数据从UIViewController发送到UITableViewController并以Swift格式返回,uitableview,uiviewcontroller,swift,ios8,Uitableview,Uiviewcontroller,Swift,Ios8,我有嵌入式导航控制器CurrentCityViewController.swift的UIViewController,它在UITableViewController CitiesListTableViewController.swift中发送数据。这是UIViewController中代码的一部分: 在UITableViewController中,我选择行。接下来,我想将行号传递回UIViewController并使用该编号。但是字符串printlnReceived index:\current
......
var currentCityIndex: Int = 0
var resultWeatherArray: [(city:String, country:String, image:UIImage, weather:String, temp:String, humidity:String, wind:String, windspeed:String, pressure:String)] = []
var isFirstStart: Bool = true
override func viewDidAppear(animated: Bool) {
if isFirstStart == true {
println("First start")
isFirstStart = false
......
}
else {
println("Not first start")
println("Received index: \(currentCityIndex)")
localCityName.text = resultWeatherArray[currentCityIndex].city
......
}
}
......
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if segue.identifier? == "showFavCities" {
let destViewController:CitiesListTableViewController! = segue.destinationViewController as CitiesListTableViewController
destViewController.resultWeatherArray = self.resultWeatherArray
}
}
override func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
currentCityController.currentCityIndex = self.tableView.indexPathForSelectedRow().row
println("Index for send: \(currentCityController.currentCityIndex)")
self.navigationController.popViewControllerAnimated(true)
}
override func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
var currentCityController = self.navigationController.viewControllers[0] as CurrentCityViewController
currentCityController.currentCityIndex = self.tableView.indexPathForSelectedRow().row
self.navigationController.popViewControllerAnimated(true)
}