我正在尝试将数据从我的tableviewcontroller传递到我的详细视图控制器,但是我不知道如何执行此操作,因为我创建了一个自定义单元格,并且无法从cellforrowatIndexPath方法外部访问“单元格”。关于我将如何做到这一点的任何线索?我正在尝试传递图像和标签上的文字。
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!, object: PFObject?) -> PFTableViewCell! {
let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as TableViewCell
cell.userName.text = object?.valueForKey("FBName") as? String
let userProfilePhotoURLString = object?.valueForKey("pictureURL") as? String
var pictureURL: NSURL = NSURL(string: userProfilePhotoURLString!)!
var urlRequest: NSURLRequest = NSURLRequest(URL: pictureURL)
NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue()) { (NSURLResponse response, NSData data,NSError error) -> Void in
if error == nil && data != nil {
cell.userImage.image = UIImage(data: data)
}
cell.ratingsView.show(rating: 4.0, text: nil)
}
return cell
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "detailViewSegue" {
let indexPath: NSIndexPath = self.tableView.indexPathForSelectedRow()!
let detailVC: DetailViewController = segue.destinationViewController as DetailViewController
}
}
答案 0 :(得分:0)
一种方法是在DetailViewController中声明一个变量(可以是一组数据的结构),然后将其填入prepareForSegue。
实施例: 在DetailViewController中:
var xyz =""
在prepareForSegue中:
detailVC.xyz = someArray [indexPath.row]
如果在DetailViewController中使用结构:
struct parseRecord
{
var title = ""
var note = ""
}
var record: parseRecord?
在prepareForSegue中:
记录?.title = title [indexPath.row]
记录?.note = note [indexPath.row]
另一种(但不太理想的方法)是使用全局变量
请注意是否需要正确应用您的?而且!确保你编译。