如何使用主视图的选定单元格内容设置详细视图的 table 视图的最顶层单元格(第一行)?

How to set the topmost cell (first row) of detail view's table view with master view's selected cell content?

使用 Swift(带有故事板)和 Parse 开发社交 iPhone 应用程序,用户可以在其中创建 post 并评论 post,类似于Facebook iOS 应用和其他社交网络应用。

该应用程序有一个初始主主页动态页面(显示用户posts)和一个详细信息回复页面(显示用户评论)。两者都使用 PFTableViewController class 并且每个 table 视图都有自己的 PFTableViewCell 在单独的 swift 文件中作为原型单元实现。

我正在尝试将所选 post 单元格的内容(用户名、post 消息、时间戳等)从主主页提要页面发送到详细信息 回复页面最顶部的单元格(table 视图顶部的第一个单元格)。

我的目标是让它的工作方式类似于 Facebook、Instagram 和 Twitter iOS 应用程序的工作方式 - 每当用户在主 feed/timeline 中选择 post , 详细视图显示在主 post 位于顶部的位置(但未固定到顶部 - 这意味着它将滚动 up/down 与 table 视图)并且其注释位于它下面的单元格。

感谢您的帮助和时间!谢谢!

在左侧面板上的选择上,您可以使右侧面板上的表格视图滚动到顶部动画 false。

经过进一步研究,"hack" 的一种方法是执行与以下类似的操作:

1) 通过在单独的 Swift 文件中实现它来为顶行(最顶部的单元格)创建自定义表格视图单元格,就像您为原型单元格所做的那样。

2) 现在您有两个自定义单元格。因此,实现两个功能,在每个功能中,您可以按照满足您的应用程序要求等的方式自定义它们以及单元格。

3) 在 cellForRowAtIndexPath 方法中,使用 if/else 语句 return 第 0 行的适当表视图单元格(topmost/header 单元格),否则 return 任何其他行的另一个原型单元格(即:header 单元格下方的单元格):

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    if indexPath.row == 0 {
        return headerCellAtIndexPath()
    } else {
        return commentCellAtIndexPath(indexPath)
    }
}

func headerCellAtIndexPath() -> CommentsHeaderTableViewCell {
    let headerCell = tableView.dequeueReusableCellWithIdentifier("topCell") as! CommentsHeaderTableViewCell

    // Customize your headerCell...

    return headerCell 

}

func commentCellAtIndexPath(indexPath:NSIndexPath ) -> CommentTableViewCell {
    let commentCell = tableView.dequeueReusableCellWithIdentifier("commentCell", forIndexPath: indexPath) as! CommentTableViewCell

    // Customize your commentCell...

    return commentCell
}