I was having some issues using PFQueryTableViewController with Parse loading the next page using didselectrowatindexpath. The error was NSIndexOut of Range when selecting the load next page cell.
Here was the fix:
// Initialize the PFQueryTable tableview override init(style: UITableViewStyle, className: String?) { super.init(style: style, className: className) } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)! parseClassName = "yourClass" pullToRefreshEnabled = true paginationEnabled = true objectsPerPage = 11 } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell { let cellIdentifier = "statusCell" var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? statusCellClass if cell == nil { cell = statusCellClass(style: UITableViewCellStyle.Default, reuseIdentifier: cellIdentifier) } // Extract values from the PFObject to display in the table cell if let object = object { cell!.status.text = (object["status"] as! String) // Date for cell subtitle var dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" let dateForText = object.createdAt as NSDate! cell!.created.text = dateFormatter.stringFromDate(dateForText) } return cell! } override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){ //if the index is out of range 11, [0-10] make that cell load next page if (indexPath.row == self.objects!.count){ loadNextPage() } else{ var targetObject = objectAtIndexPath(indexPath)! rowObjectID = targetObject.objectId as String! NSLog("Row Pressed") NSLog("%@", targetObject) NSLog("%@", rowObjectID) performSegueWithIdentifier("editStatus", sender: self) } }