【问题标题】:Query for data to add data to prepareForSegue function查询数据以将数据添加到 prepareForSegue 函数
【发布时间】:2015-11-03 00:38:50
【问题描述】:

我正在尝试从 Parse 表中查询数据以将其添加到 prepareForSegue 函数。但是一旦我进入 newViewController 标签是空白的。这是我的代码行。

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

        var upcoming: marathonDetailViewController = segue.destinationViewController as! marathonDetailViewController

        let indexPath = self.marathonsTableView.indexPathForSelectedRow!



        let currentCell = marathonsTableView.cellForRowAtIndexPath(indexPath) as! marathonTableViewCell

        let marathonEvents = currentCell.marathonName.text


        upcoming.nameMarathon = marathonEvents

        self.marathonsTableView.deselectRowAtIndexPath(indexPath, animated: true)

        var query = PFQuery(className: "marathons")
        query.whereKey("marathonName", equalTo: marathonEvents!)
        query.findObjectsInBackgroundWithBlock{
            (marathonPickeds: [PFObject]?, error: NSError?) -> Void in
            if (error == nil){
                if let marathonPicked = marathonPickeds as? [PFObject]?{
                    for marathonPicked in marathonPickeds!{

                var selectedDescription = marathonPicked.description

                upcoming.marathonDescription = selectedDescription
                         print(selectedDescription)
                    }

                }


            }else {

            print(error)

            }



        }


    }
}

marathonsEvents= currentCell.marathonName.text 运行良好,但 marathonDescription 为空白。

有什么建议吗?我使用 Parse 作为我的后端 XCODE 7,并且 swift

【问题讨论】:

    标签: swift parse-platform xcode7


    【解决方案1】:

    您正在后台线程上执行网络调用,所以当它完成时,您已经完成了 segue。您可能想要做的是:

    1. 将该查询逻辑拉到一个单独的类中,将其从视图控制器中取出。
    2. 在这种情况下,在被推送到的视图控制器中执行请求。您可以在viewWillAppear 中启动它,并在完成后刷新您的视图。看起来它仅使用 marathonEvents 就拥有执行请求所需的所有信息。

    【讨论】:

    • 如何刷新 viewController?
    • 请求完成后,您将设置标签的文本。
    • 好的我不得不更改代码行 var selectedDescription = wildCardPicked.description 因为它给了我行的所有信息我将其更改为 var selectedDescription = wildCardPicked.information 但现在我得到一个错误“PFObject的值类型没有成员'信息'”如何获取信息列中的信息?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2017-12-06
    • 2016-01-02
    相关资源
    最近更新 更多