2016-01-05 25 views
0

我正在使用TableViewController上的PFQueryTableViewController。問題是:數據在我刷新時加載,但當視圖加載時它們不加載。PFQueryTableViewController不從Parse中加載

我意識到所有具有「self.tableView」的代碼都不會像(self.tableView.reloadData)那樣工作太多。

這裏是我的代碼:

import UIKit 

class TableViewController: PFQueryTableViewController { 
    var titulo = String() 
    var sub_titulo = String() 
    var url = String() 
    var tipo = Int() 

    @IBOutlet weak var imagemNerdmonster: UIImageView! 

    override init(style: UITableViewStyle, className: String!) { 
     super.init(style: style, className: className) 
    } 

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell { 
     var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! PFTableViewCell! 

     if cell == nil { 
      cell = PFTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell") 
     } 

     // Extract values from the PFObject to display in the table cell 
     if let titulo = object?["titulo"] as? String { 
      cell?.textLabel?.text = titulo 
     } 
     if let sub_titulo = object?["sub_titulo"] as? String { 
      cell?.detailTextLabel?.text = sub_titulo 
     } 
     return cell 
    } 

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     let object = objectAtIndexPath(indexPath) 
     self.titulo = object!.objectForKey("titulo") as! String 
     self.sub_titulo = object!.objectForKey("sub_titulo") as! String 
     self.url = object!.objectForKey("url") as! String 
     self.tipo = object!.objectForKey("tipo") as! Int 
     //Chama a segue 
     self.performSegueWithIdentifier("detailSegue", sender: self) 
    } 

    //In a storyboard-based application, you will often want to do a little preparation before navigation 
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     let svc = segue.destinationViewController as! DetailViewController 
     svc.titulo = self.titulo 
     svc.sub_titulo = self.sub_titulo 
     svc.url = self.url 
     svc.tipo = self.tipo 
    } 

    override func viewDidAppear(animated: Bool) { 
     // Refresh the table to ensure any data changes are displayed 
     super.viewDidAppear(animated) 
     self.tableView.reloadData() 
    } 

    override func viewDidLoad() { 
     self.tableView.estimatedRowHeight = 100 
     self.tableView.rowHeight = UITableViewAutomaticDimension 
     self.tableView.reloadData() 
    } 

    @IBAction func saveButton(sender: AnyObject) { 
     //Return to table view 
     self.dismissViewControllerAnimated(true, completion: nil) 
    } 

    override func queryForTable() -> PFQuery { 
     let query = PFQuery(className: "Conteudo") 
     query.orderByAscending("createdAt") 
     query.limit = 20 
     //query.whereKey("currencyCode", equalTo:"EUR") 
     return query 
    } 

    required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder)! 
     //Configure the PFQueryTableView 
     self.parseClassName = "Conteudo" 
     self.textKey = "Titulo" 
     self.pullToRefreshEnabled = true 
     self.paginationEnabled = true 
     self.objectsPerPage = 20 
    } 
} 

enter image description here

回答

1

此方法添加到您的類:

override func viewWillAppear(animated: Bool) { 
    loadObjects() 
} 
+0

這是正確的。非常感謝! =) – Marcos

相關問題