2015-07-19 106 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中顯示類別的類別的類別,每個類別將保存他們所屬類別的文章。 –

相關問題