title: How to add pagination in UITableView.?
body: <p>I parse data from API for the first page and add it to <code>UITableView</code>, now pages can be multiple lets say 100, I also get total number of pages from API also. but how will i implement it in tableView for every page and show indicator while scrolling. Have a look at my code</p>
  
  <pre><code>NSURL *theURL = [NSURL URLWithString:@"http://qa.networc.in:1336/api/dispatcher/rideScheduled/:1"];
  NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:theURL      cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:20.0f];
  
  //Specify method of request(Get or Post)
  [theRequest setHTTPMethod:@"GET"];
  
  //Pass some default parameter(like content-type etc.)
  [theRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
  [theRequest setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
  
  [theRequest addValue:token forHTTPHeaderField:@"x-access-token"];
  NSURLResponse *theResponse = NULL;
  NSError *theError = NULL;
  
  NSData *responseData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&amp;theResponse error:&amp;theError];
  if (responseData == nil)
  {
      return;
  }
  
  NSDictionary *dataDictionaryResponse = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&amp;theError];
  NSLog(@"url to send request= %@",theURL);
  NSLog(@"%@",dataDictionaryResponse);
  
  
  
  NSURLSession *session = [NSURLSession sharedSession];
  
  NSURLSessionDataTask *task = [session dataTaskWithRequest:theRequest
                                          completionHandler:
                                ^(NSData *data, NSURLResponse *response, NSError *error) {
  
                                    NSLog(@"Response:%@ %@\n", response, error);
                                    if(error == nil)
                                    {
  
                                        NSString * text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
                                        NSLog(@"Data = %@",text);
                                    }
  
                                    dictionary = [[NSJSONSerialization JSONObjectWithData:data options:0 error:nil]objectForKey:@"data"];
  
                                    NSArray *total =  [dictionary objectForKey:@"total"];
                                    NSLog(@"latlop %@", total);
  
  
  
  
                                    NSArray *IDArray = [dictionary objectForKey:@"docs"];
                                    for (NSDictionary *Dict in IDArray)
                                    {
  
                                        NSMutableDictionary *temp = [NSMutableDictionary new];
                                        [temp setObject:[Dict objectForKey:@"_id"] forKey:@"_id"];
  
                                        NSLog(@"temp %@", temp );
  
                                        NSString *booknumber = [Dict objectForKey:@"bookingNumber"];
                                        if([booknumber length] != 0)
                                            [temp setObject:booknumber forKey:@"bookingNumber"];
  
                                        NSMutableDictionary *stp1 = [Dict objectForKey:@"stop1"];
  
                                        if ([[stp1 allKeys] containsObject:@"address"]) {
  
                                            [temp setObject:[stp1 objectForKey:@"address"] forKey:@"address"];
  
  
  
  
                                            ];
  
                                        }
  
                                        NSMutableDictionary *stp2 = [Dict objectForKey:@"stop2"];
  
                                        if ([[stp2 allKeys] containsObject:@"address"]) {
  
                                            [temp setObject:[stp2 objectForKey:@"address"] forKey:@"address1"];
  
  
                                            NSArray *latlongstp2 =  [stp2 objectForKey:@"location"];
                                            [temp setObject:[latlongstp2 objectAtIndex:0] forKey:@"latitude"];
                                            [temp setObject:[latlongstp2 objectAtIndex:1] forKey:@"longitude"];
  
                                        }
  
  
  
                                        NSMutableDictionary *currentloc = [Dict objectForKey:@"currentLocation"];
  
                                        if ([[currentloc allKeys] containsObject:@"address"]) {
  
                                            [temp setObject:[currentloc objectForKey:@"address"] forKey:@"address1"];
  
  
                                        }
  
  
                                        [getid addObject:temp];
  
                                    }
  
  
                                    if (getid.count&gt;0)
                                    {
                                        [self updateTable];
                                    }
  
  
  
                                }];
  
  [task resume];
  
  }
  
  
  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  {
      return 1;    //count of section
  }
  
  
  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  
  
      return [getid count];
  }
  
  - (void)tableView:(UITableView *)tableView willDisplayCell: (UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
      if (indexPath.row == [getid count] - 1 ) {
  
      }
  }
  
  
  - (UITableViewCell *)tableView:(UITableView *)tableView
           cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      ScheduleTableViewCell *cell   = [tableView      dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
  
      cell.BookingId.text  = [[getid        objectAtIndex:indexPath.row]objectForKey:@"_id"];
      cell.BookingNo.text  = [[getid objectAtIndex:indexPath.row]objectForKey:@"bookingNumber"];
      cell.stop1.text  = [[getid objectAtIndex:indexPath.row]objectForKey:@"address"];
      cell.stop2.text = [[getid objectAtIndex:indexPath.row] objectForKey:@"address1"];
      cell.Currentloc.text = [[getid objectAtIndex:indexPath.row]  objectForKey:@"address"];
  
  
      return cell;
  }
  </code></pre>