ios - 详细 View UITableView - 在 segue 之前传递数据

标签 ios uitableview swift segue

因此,在我的 Storyboard文件中,我有一个从一个 UITableViewController 到另一个 UITableViewController 的转场,这样当用户点击单元格时,它会打开下一个表格。没什么特别的。但是,当他们点击单元格时,我需要指定要加载到下一个 View 中的数据。我在 didSelectRowAtIndexPath 中执行此操作。根据indexPath.row,我设置了分配给prepareForSegue 函数中的详细 TableView 的变量值。我将 View Controller 作为变量加载到 let detailViewController = segue.destinationViewController as DetailTableViewController 中。从这里使用赋值函数设置数据。但是,当我点击表格时,数据不会显示,直到我按返回并再次点击它。基本上,数据是在segue之后分配的...我如何分配数据并在之后执行segue?

编辑

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        switch indexPath.row {
        case 0:
            self.passedInfo = self.infoOne;
            break
        case 1:
            self.passedInfo = self.infoTwo;
            break
        case 2:
            self.passedInfo = self.infoThree;
            break
        default:
            break;
        }
    }

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
        let detailViewController = segue.destinationViewController as DetailTableViewController
        let destinationTitle = "Detail View"
        detailViewController.title = destinationTitle
        self.passedScores.sort{$0 > $1};
        detailViewController.setData(self.passedInfo);
    }

最佳答案

在显示 Controller 之前,您应该使用 prepareForSegue 函数将数据传递到目标 View Controller 。这是一篇关于如何在 Swift 中执行此操作的精彩文章:http://www.raywenderlich.com/forums/viewtopic.php?f=11&t=18471

关于ios - 详细 View UITableView - 在 segue 之前传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538985/

相关文章:

ios - 运行 iOS v13.3 的 iPhone Xs 未显示在 Mac OS Catalina v10.15.2 上 Safari v13.0.4 的开发菜单中

iphone - 选择 UITableViewCell AccessoryView,与选择行分开

ios - 在 UIViewController 内部的 UITableView 上拉动刷新

ios - 消除 UITableView 下面多余的分隔符

ios - CLLocation 跟踪 iPhone 在哪条路上

ios - 将 C 库导入 Swift 项目

objective-c - 将 NSMutableArray 复制到 float 组中以进行 GLES 渲染

ios - 在 iOS 上的音频播放器或 VOIP 应用程序中从后台显示一些 UI

ios - 创建密码实例 Objective-C 并获取 block 大小

ios - 如何取消 AWSTask<AWSS3TransferUtilityUploadTask *> 请求?