Search code examples
iosparse-platformpaginationpfquerypfquerytableviewcontrolle

PFQueryTableViewController Ignoring Pagination Setting


I am updating my Parse app, after moving everything over to Heroku, using the open-sourced Parse servers. My app has one section with a PFQueryTableViewController. For a couple of years, I have had pagination disabled, as we only have about 50 items to be used in that table. I ran it this morning, and at the bottom, after about 20 items, it pulled up the Load More option. Here's the thing...it's still disabled. Why is this pulling up?

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {

        // The className to query on
        self.parseClassName = @"FritchDirectory";

        // Whether the built-in pull-to-refresh is enabled
        self.pullToRefreshEnabled = YES;

        // Whether the built-in pagination is enabled
        self.paginationEnabled = NO;

        // The number of objects to show per page
        self.objectsPerPage = 0;

    }
    return self;
}
- (PFQuery *)queryForTable {
    NSLog(@"QUERY");
    PFQuery *query = [PFQuery queryWithClassName:@"FritchDirectory"];
    // If no objects are loaded in memory, we look to the cache first to fill the table
    // and then subsequently do a query against the network.
    if (self.objects.count == 0) {
        query.cachePolicy = kPFCachePolicyCacheThenNetwork;
    }

    [query orderByAscending:@"title"];

    return query;
}

// Customize the number of sections in the table view.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


// Customize the number of rows in the table view.



// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
                        object:(PFObject *)object
{
    static NSString *CellIdentifier = @"Cell";

    DirectoryCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        [tableView registerNib:[UINib nibWithNibName:@"DirectoryCell" bundle:nil] forCellReuseIdentifier:@"Cell"];
        cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

    }
    self.theObject = object;

    RSSEntryDirectory *entry = [_allEntries objectAtIndex:indexPath.row];
    cell.theImageView.image = [UIImage imageNamed:@"[email protected]"];

    cell.theImageView.contentMode = UIViewContentModeScaleAspectFit;



    PFFile *thumbnail = object[@"Picture"];


    if ([thumbnail isEqual:[NSNull null]]) {

    }
    else {
    [thumbnail getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {

        UIImage *thumbnailImage = [UIImage imageWithData:imageData];

        NSLog(@"%@", thumbnail);
            cell.theImageView.image = thumbnailImage;
        cell.theImageView.clipsToBounds = YES;
        NSLog(@"%@", thumbnailImage);
        //cell.imageView.contentMode = UIViewContentModeScaleAspectFit;
    }];
    }





    cell.names.text = object[@"title"];
    NSLog(@"NAMES%@", object[@"title"]);
    CALayer * l = [cell.theImageView layer];
    [l setMasksToBounds:YES];
    [l setCornerRadius:11];
    [l setBorderWidth:2.0];
    [l setBorderColor:[[UIColor blackColor] CGColor]];
    if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
    {
        UIFont *cellFont = [UIFont fontWithName:@"ArialRoundedMTBold" size:38];
        cell.names.font = cellFont;
        UIFont *cellFont2 = [UIFont fontWithName:@"ArialRoundedMTBold" size:24];
        cell.detailTextLabel.font = cellFont2;
    }
    else {
        UIFont *cellFont = [UIFont fontWithName:@"ArialRoundedMTBold" size:20];
        cell.names.font = cellFont;
        UIFont *cellFont2 = [UIFont fontWithName:@"ArialRoundedMTBold" size:12];
        cell.detailTextLabel.font = cellFont2;
    }


    return cell;
}

Solution

  • Just to be clear. PFQueryTableViewController doesn't work correctly when placed in the NavigationViewController. Ensure that it lies in your TableViewController, TabViewController or ViewController.