title: inline UiPickerView in UITableView
body: <p>I am using more than two inline picker views (Not UIDatePickerView) and it's working fine with all transition but what my problem is its mixing the data sources value and shows both mixed value.</p>
  
  <p>I have just used Apple's sample for an inline datepicker for checking.</p>
  
  <p>I have <code>data1PickerView</code> with its own Two <code>DataSource</code> named as <code>data1</code> and <code>data2</code>.</p>
  
  <p>My code is as follows when I open the pickerView on tableViewCell didSelect</p>
  
  <pre><code>data1=[NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];
  data2=[NSMutableArray arrayWithObjects:@"a",@"b",@"c",@"d",nil];
  
  #pragma mark - UITableViewDelegate
  
  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
      UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
  
  
      if(indexPath.row==1){
          isData1=TRUE;
          isData2=FALSE;
      }
  
      else if(indexPath.row==2){
  
          isData2=TRUE;
          isData1=FALSE;
      }
      if (cell.reuseIdentifier == kDateCellID)
      {
          if (EMBEDDED_DATE_PICKER)
              [self displayInlineDatePickerForRowAtIndexPath:indexPath];
          else
              [self displayExternalDatePickerForRowAtIndexPath:indexPath];
      }
      else
      {
          [tableView deselectRowAtIndexPath:indexPath animated:YES];
      }
  }
  /*! Reveals the date picker inline for the given indexPath, called by "didSelectRowAtIndexPath".
  
   @param indexPath The indexPath to reveal the UIDatePicker.
   */
  - (void)displayInlineDatePickerForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      // display the date picker inline with the table content
      [self.tableView beginUpdates];
  
      BOOL before = NO;   // indicates if the date picker is below "indexPath", help us determine which row to reveal
      if ([self hasInlineDatePicker])
      {
          before = self.datePickerIndexPath.row &lt; indexPath.row;
      }
  
      BOOL sameCellClicked = (self.datePickerIndexPath.row - 1 == indexPath.row);
  
      // remove any date picker cell if it exists
      if ([self hasInlineDatePicker])
      {
          [self.tableView deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:self.datePickerIndexPath.row inSection:0]]
                                withRowAnimation:UITableViewRowAnimationFade];
          self.datePickerIndexPath = nil;
      }
  
      if (!sameCellClicked)
      {
          // hide the old date picker and display the new one
          NSInteger rowToReveal = (before ? indexPath.row - 1 : indexPath.row);
          NSIndexPath *indexPathToReveal = [NSIndexPath indexPathForRow:rowToReveal inSection:0];
  
          [self toggleDatePickerForSelectedIndexPath:indexPathToReveal];
          self.datePickerIndexPath = [NSIndexPath indexPathForRow:indexPathToReveal.row + 1 inSection:0];
      }
  
      // always deselect the row containing the start or end date
      [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
  
      [self.tableView endUpdates];
  
      // inform our date picker of the current date to match the current cell
      [self updateDatePicker];
  }
  
  
  // The number of columns of data
  - (int)numberOfComponentsInPickerView:(UIPickerView *)pickerView
  {
      return 1;
  }
  
  // The number of rows of data
  - (int)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
  {
  
      if(isData1)
      return data1.count;
      else if(isData2)
          return data2.count;
      else
          return 0;
  }
  
  // The data to return for the row and component (column) that's being passed in
  - (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
  {
  
      if(isData1)
          return [data1 objectAtIndex:row];
      else if(isData2)
          return [data2 objectAtIndex:row]
          ;
  else
      return @"";
  }
  
  - (void)toggleDatePickerForSelectedIndexPath:(NSIndexPath *)indexPath
  {
      [tblRegister beginUpdates];
  
      NSArray *indexPaths = @[[NSIndexPath indexPathForRow:indexPath.row + 1 inSection:0]];
  
      // check if 'indexPath' has an attached date picker below it
      if ([self hasPickerForIndexPath:indexPath])
      {
          // found a picker below it, so remove it
          [tblRegister deleteRowsAtIndexPaths:indexPaths
                                withRowAnimation:UITableViewRowAnimationFade];
      }
      else
      {
  
          // didn't find a picker below it, so we should insert it
          [tblRegister insertRowsAtIndexPaths:indexPaths
                                withRowAnimation:UITableViewRowAnimationFade];
      }
  
      [tblRegister endUpdates];
  }
  </code></pre>
  
  <p>can any one please tell me what cause that my data1 datasource shwoing values with data2 Datasource and vice a versa as per following image</p>
  
  <p><img src="https://i.stack.imgur.com/htAgX.png" alt="enter image description here"></p>
  
  <p><img src="https://i.stack.imgur.com/cR8pN.png" alt="enter image description here"></p>