2015-07-19 78 views

回答

1

想要在第二个UITableViewController中显示的数据可能取决于您在第一个单元中点击哪个单元格,对吗?然后你需要将你的第一个UITableViewController的数据传递给第二个。

如果你使用故事板,我会建议(我认为这是最简单的方法,但我不知道它是否是最好的),你从第一个UITableViewController创建一个segue到另一个,然后正确命名。然后使用prepareForSegue将该数据输入下一个表格。如果您只使用单个Parse查询,则可以简单地将查询中的结果数组复制到您的类中。

//In your class declaration 
var objects = [PFObject]() 

//In your query method 
query.findObjectsInBackgroundWithBlock { 
(objects: [AnyObject]?, error: NSError?) -> Void in 
    if let results = objects as! [PFObject] { 
    self.objects = results } 
}  

didSelectRowAtIndexPath

performSegueWithIdentifier("mySegue", sender: self) 

执行赛格瑞并实行prepareForSegue,以满足您的需求。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    //Check that the segue is the right one 
    if segue.identifier == "mySegue" { 

     if let destination = segue.destinationViewController as? MySecondTableViewController { 
      //Grab the data from your array 
      if let indexPath = tableView.indexPathForSelectedRow()?.row { 
       if let objectToPass = objects[indexPath] as? PFObject { 
       //Assuming your destination VC has a variable named object, type PFObject? 
       destination.object = objectToPass 
       } 
      } 
     } 
    } 
} 

然后,在你的下一个UITableViewController,您可以使用object为第二表中执行新的查询。例如:

//Second UITableViewController 
//If you're using PFTableQueryViewController, use the queryForTable method 
let query = PFQuery(classname: "Animals") 
query.whereKey("owner", equalTo: object) //Object comes from your first table 
query.findObjectsInBackgroundWithBlock{ 
(...) } 

编辑:这是几乎一模一样他们在史蒂夫发布的链接做什么,但我做了一些例子希望装修您的案件。

+0

这是我正在寻找的一种。我所拥有的是第一个带有其中4个类别的tableview。当其中一个类别被点击时,它会将您带到另一个显示与该类别相关的文章的tableview。而不是从这些单元中点击过的任何一个单元,它会带你到视图控制器显示信息。 –

+0

然后这应该做到这一点。如果您将Category PFObject发送到第二个表视图控制器,您可以查询.WhereKey(“Category”,isEqualTo:object)或类似的,这取决于您的解析数据库的设计方式。 (上面假设每篇文章都有一个名为“Category”的列,并带有指向类别的指针) – Mattias

+0

我设置了类似于在第一个tableview中显示类别的类别的类别,每个类别将保存他们所属类别的文章。 –

相关问题