i have 3 different arrays. 1)for ids 2)for names 3)for emailid.
i am displaying names in a tableview.
And displaying selected name with checkmark in tableview.
Now i need to get selected name id and email from the ids and emailid arrays.
And that retrieved id and emails are need to save in two different arrays.
for that my code is
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.sourceArray count];;
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
[cell.textLabel setText:[self.sourceArray objectAtIndex:indexPath.row]];
if ([self.selectedArray containsObject:[agentemails objectAtIndex:indexPath.row]]){
NSLog(@"111111111111");
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else
{
[cell setAccessoryType:UITableViewCellAccessoryNone];
}
if ([self.selected_agentid_email containsObject:[agentids objectAtIndex:indexPath.row]]){
NSLog(@"222222222222");
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else
{
[cell setAccessoryType:UITableViewCellAccessoryNone];
}
if(myBoolean){
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
return cell;
}
#pragma mark -
#pragma mark Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ([self.selectedArray containsObject:[agentemails objectAtIndex:indexPath.row]]){
NSLog(@"33333333333333");
[self.selectedArray removeObjectAtIndex:[self.selectedArray indexOfObject:[agentemails objectAtIndex:indexPath.row]]];
}
else
{
[self.selectedArray addObject:[agentemails objectAtIndex:indexPath.row]];
}
if ([self.selected_agentid_email containsObject:[agentids objectAtIndex:indexPath.row]]){
NSLog(@"4444444444444444");
[self.selected_agentid_email removeObjectAtIndex:[self.selected_agentid_email indexOfObject:[agentids objectAtIndex:indexPath.row]]];
}
else
{
[self.selected_agentid_email addObject:[agentids objectAtIndex:indexPath.row]];
}
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
but the problem i am getting is,
eg: if i select 3 names in a tableview i am able to retrieve only one emailid and 3 ids.
i did n’t get what’s problem is.
can any one please help me.
Thank u in advance.
This may not be the solution you were looking for but I would recommend creating a class to store those values so you only have to work with an array of all values and an array of selected values. This will greatly decrease the complexity of working with several arrays. I have not actually tested the following code but this will be sort of what it would like.