将数据从UIViewController发送到UITableViewController并以Swift格式返回

将数据从UIViewController发送到UITableViewController并以Swift格式返回,uitableview,uiviewcontroller,swift,ios8,Uitableview,Uiviewcontroller,Swift,Ios8,我有嵌入式导航控制器CurrentCityViewController.swift的UIViewController,它在UITableViewController CitiesListTableViewController.swift中发送数据。这是UIViewController中代码的一部分: 在UITableViewController中,我选择行。接下来,我想将行号传递回UIViewController并使用该编号。但是字符串printlnReceived index:\current

我有嵌入式导航控制器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中:

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