Parse platform 如何使用prepare for segue方法将数据从表格单元格传输到新的视图控制器?
当我选择单元格时,如何使用prepare for segue将图像(tweetImg)和日期(dateLbl)从tablecell(mainCell)传输到Newviewcontroller?在我的例子中,我使用parse.com作为后端来检索图像和日期数据。我是编程新手,希望能得到一些帮助,谢谢 mainVC mainCell NewViewControllerParse platform 如何使用prepare for segue方法将数据从表格单元格传输到新的视图控制器?,parse-platform,swift2,segue,Parse Platform,Swift2,Segue,当我选择单元格时,如何使用prepare for segue将图像(tweetImg)和日期(dateLbl)从tablecell(mainCell)传输到Newviewcontroller?在我的例子中,我使用parse.com作为后端来检索图像和日期数据。我是编程新手,希望能得到一些帮助,谢谢 mainVC mainCell NewViewController 删除方法didselectrowatinexpath,并将segue连接到表视图单元格而不是视图控制器 选择单元格后,它将作为pre
删除方法
didselectrowatinexpath
,并将segue连接到表视图单元格而不是视图控制器
选择单元格后,它将作为prepareforsgue
方法中的sender
参数传递
旁注:不要在视图中执行后台任务–即
cellforrowatinexpath
方法–在模型中执行–数据源数组中的项–然后调用reloadData()
下面我提到了一个示例模板代码。根据下面提到的代码组织代码。重要的部分是在prepareforsgue
中选择单元格,而不是在didSelectRowAtIndexPath
中选择单元格。这是let indexath=self.tableView.indexPathForSelectedRow()代码>
@Dimuth Lasantha这是我所做的,它起了作用:覆盖func Prepareforsgue(segue:UIStoryboardSegue,sender:AnyObject?{让即将到来的:NewViewController=segue.destinationViewController as!NewViewController让indexPath=self.resultTable.indexPathForSelectedRow!让titleString=self.resultsStartdateArray[indexPath.row]as String comming.titleString=titleString self.resultsTable.DeceloseRowatineXpath(indexPath,动画:true)}如何在单元格中添加按钮而不是按下单元格来执行此过程?感谢您的帮助。
import UIKit
class mainVC: UIViewController, UITableViewDataSource, UITableViewDelegate, {
@IBOutlet weak var resultsTable: UITableView!
var resultsStartdateArray = [String]()
var resultsTweetImageFiles = [PFFile?]()
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return resultsTweetImageFiles.count
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 350
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell:mainCell = tableView.dequeueReusableCellWithIdentifier("Cell") as! mainCell
cell.dateLbl.text = self.resultsStartdateArray[indexPath.row]
resultsTweetImageFiles[indexPath.row]?.getDataInBackgroundWithBlock({
(imageData:NSData?, error:NSError?) -> Void in
if error == nil {
let image = UIImage(data: imageData!)
cell.tweetImg.image = image
}
})
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.performSegueWithIdentifier("SendDataSegue", sender: self)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if (segue.identifier == "SendDataSegue")
{
let destination: NewViewController = segue.destinationViewController as! NewViewController
// I believe the missing code should be here
}
}
}
import UIKit
class mainCell: UITableViewCell {
@IBOutlet weak var tweetImg: UIImageView!
@IBOutlet weak var dateLbl: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
}
import UIKit
class NewViewController: UIViewController {
@IBOutlet weak var dateLbl: UILabel!
@IBOutlet weak var tweetImg: UIImageView!
var titleString: String!
override func viewDidLoad()
{
super.viewDidLoad()
self.dateLbl.text = self.titleString
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
//Index path is the selected cell
let IndexPath = self.tableView.indexPathForSelectedRow()!
//Here you can assign your tweetImg and dateLbl
let newViewController = segue.destinationViewController as! NewViewController
newViewController.dateLbl.text = //your date label value
//here assign your image to destination view controller property
}