如果用户在swift中执行segue,我将如何取消隐藏按钮?

时间:2015-12-08 22:12:18

标签: swift parse-platform segue cell hidden

我有一个隐藏的单元格内的按钮(PFQueryTableViewController),当用户执行我以编程方式调用的某个segue时,我想取消隐藏它。

当用户点击单元格时,它会切换到一个显示单元格全屏内容的视图控制器...我希望按钮在调用segue时取消隐藏此单元格,以便当用户返回到表格时他们可以在他们刚刚拍摄的细胞上看到细胞。

我该怎么做?

问题后编辑:

在cellRowForIndexPath中我对按钮

有以下内容
cell.myButton.tag = indexPath.row
    cell.myButton.addTarget(self, action: "pressed:", forControlEvents: UIControlEvents.TouchUpInside)
    cell.myButton.hidden = true

segue本身将来自单元格(存储在Parse后端)的信息从AllPostsTableViewController传递到FullPostViewController。这个代码就是这个(我会在这里调用unhide吗?):

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    self.performSegueWithIdentifier("showFullPost", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "showFullPost" {
        let indexPath = self.tableView.indexPathForSelectedRow
        let fullPostVC = segue.destinationViewController as! FullPostViewController
        let object = self.objectAtIndexPath(indexPath)
        fullPostVC.post = object?.objectForKey("postContent") as? String
        let likeCount = object!.objectForKey("likedBy")!.count
        fullPostVC.likesCounted = String(likeCount)

        self.tableView.deselectRowAtIndexPath(indexPath!, animated: true)

    }
}

1 个答案:

答案 0 :(得分:0)

(彻底编辑问题后彻底编辑答案)

下面是一种可能的解决方案。

由于你提到表格单元格(每个包含一个按钮;我假设UIButton),我假设你用UITableViewCell个对象填充表格视图单元格;一些花哨的子类到后者。在这堂课中:

  • 如果您还没有,请从您的按钮创建@IBOutlet作为此课程中的媒体资源。
  • 如果选择setSelected(...)(将在segue之前),请重载方法UITableViewCell以取消隐藏按钮

因此,在你的UITableViewCell子类中,你应该能够做到这一点:

// ...TableViewCell.swift

Import UIKit

// ...

class ...TableViewCell: UITableViewCell {

    // Properties
    @IBOutlet weak var button: UIButton!
        // button contained in UITableViewCell

    // ...

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // If table cell is selected (after which segue will follow),
        // un-hide button.
        if (selected) {
            button.hidden = false
        }
    }
}

希望这会实现你的目标。