将单元名称传递给View Controller旁边

时间:2016-01-29 22:16:37

标签: ios xcode swift uitableview parse-platform

首先,感谢您阅读我的问题!

所以,我遇到了一些关于让我的单元名称传递到下一个视图的问题。现在它将传递它,但它只显示最近加载的单元格。

现在是如何编程的:

var passName = ""
var passAuthor = ""
var passLikes = 0
var passDescrip = ""

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!

    // Configure the PFQueryTableView
    self.parseClassName = "Location"
    self.textKey = "Name"
    self.pullToRefreshEnabled = true
    self.paginationEnabled = true
    self.objectsPerPage = 5

}
override func queryForTable() -> PFQuery {
    let query = PFQuery(className: "Location")
    query.orderByAscending("Name")
    return query
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> CustomPFTableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! CustomPFTableViewCell!

    print("Loading Parse Database Files...")
    // Extract values from the PFObject to display in the table cell
    if let name = object?["Name"] as? String {
        cell?.nameTextLabel?.text = name
        passName = name
        print("Loading " + name)
    }
    if let author = object?["authorName"] as? String {
        cell?.authorTextLabel?.text = author
        passAuthor = author
    }
    if let likes = object?["Likes"] as? Int {
        let stringVal = String(likes)
        cell?.numLikes.text = stringVal
        passLikes = likes
    }
    if let descrip = object?["Description"] as? String {
        passDescrip = descrip

    }
    let initialThumbnail = UIImage(named: "Unloaded")
    cell.customFlag.image = initialThumbnail
    if let thumbnail = object?["imageCover"] as? PFFile {
        cell.customFlag.file = thumbnail
        cell.customFlag.loadInBackground()


    }
    print("Finished loading!")


    return cell
}

//Original prepareForSegue
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "toDetailScene") {

        // initialize new view controller and cast it as your view controller
        let viewController = segue.destinationViewController as! DetailViewController




        viewController.tripName = passName
        viewController.tripAuthor = passAuthor
        viewController.tripLikes = passLikes
        viewController.tripDescrip = passDescrip
    }
}

稍后,下一个视图控制器会使用以下简单代码接收它:     @IBOutlet弱var名称:UILabel!     @IBOutlet weak var喜欢:UILabel!     @IBOutlet weak var作者:UILabel!     @IBOutlet weak var descrip:UITextView!

var currentObject : PFObject?

var tripName = ""
var tripAuthor = ""
var tripLikes = 0
var tripDescrip = ""

override func viewDidLoad() {
    super.viewDidLoad()



    //Hookup
    name.text = tripName
    likes.text = String(tripLikes)
    author.text = tripAuthor
    descrip.text = tripDescrip

}

我需要修复它,以便它不会一直显示错误的文章/信息。

如果我可以简单地拉出他们点击的正确单元格,那么我可以从每个标签中提取文本?那么我怎样才能找到正确的细胞?

顺便说一下:它只是从单元格到视图控制器的下一个视图控制器,并带有show segue。 (在导航控制器中)

非常感谢!

1 个答案:

答案 0 :(得分:0)

@ Paulw11在评论中回答了这个问题,它解决了我的问题。

发件人:AnyObject?我只想补充一下:

let cell = sender as! CustomPFTableViewCell

然后从那里我所要做的就是更新方法直接从单元格中连接文本字段的新值。

这是代码:

let viewController = segue.destinationViewController as! DetailViewController         
let cell = sender as! CustomPFTableViewCell

        viewController.tripName = cell.nameTextLabel.text!
        viewController.tripAuthor = cell.authorTextLabel.text!
        viewController.tripLikes = Int(cell.numLikes.text!)!