Segue推送没有第一次(延迟发送数据)

时间:2015-07-22 14:39:20

标签: ios iphone swift

Hello StackOverflow,     我只是选择swift并尝试实现在UITableView Cell和UIViewController之间传递的数据,它将显示tableview上显示的信息的详细视图,每当我第一次在模拟器上测试应用程序时,我按下一个表格单元格它传递一个空字符串,然后当我尝试按下另一个单元格时,viewController显示了之前应该看到的字符串。我将下面的代码粘贴到我的tableview didSelectRowAtIndexPath。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "DetailPush"
    {
        if let crimesView = segue.destinationViewController as? ViewController {
            crimesView.locationPassed = var1
            //println("The passing address is: \(var1)")
        }
    }

}

这是我的push segue方法的实现

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    //Adding the indexPath variable for the selected table Row within the segue
    var indexPath: NSIndexPath = self.tableView.indexPathForSelectedRow()!

    if segue.identifier == "DetailPush"
    {
            if let crimesView = segue.destinationViewController as? ViewController {
                //Then just pass the data corresponding to the array I created identified by the index of the selected row
                crimesView.locationPassed = self.arrayName[indexPath.row]
                println("The passing address is: \(self.addressSend)")
            }
    }


}

我知道为什么我会在segue期间延迟数据?

谢谢

找到解决方案:我使用以下内容编辑了我的prepareForSegue方法并解决了我的问题

MIRROR_SOURCE_INDEX

3 个答案:

答案 0 :(得分:3)

我通过观看一些在线视频找到了解决方案,我所做的就是解决我的问题,重新定义了我的prepareForSegue功能:

POST("https://api.twitter.com/1.1/statuses/update.json",
     query = list(status = "testing from R"),
     config(token = twitter_token)
)

}

它似乎对我来说就像一个常规的段落.......感谢你给我的所有建议

答案 1 :(得分:2)

你说你正在从异步请求中执行prepareForSegue 所以试试这个:

if segue.identifier == "DetailPush"
{
    dispatch_async(dispatch_get_main_queue()) {
        if let crimesView = segue.destinationViewController as? ViewController {
            crimesView.locationPassed = var1
            //println("The passing address is: \(var1)")
        }
    }
}

答案 2 :(得分:1)

尝试删除该行 tableView.deselectRowAtIndexPath(indexPath,animated:false)

看看它是否仍然存在。 也许把它移到最后