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
答案 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)
看看它是否仍然存在。 也许把它移到最后