Имам приложение за iPad (XCode 4.6, ARC, Storyboards, iOS 6.2.3). Имам UIPopover с UITableView, който има 21 реда в него. Мога да задам accessoryType във всички редове произволно, но само в първите 12 реда настройката accessoryType (отметка) остава, така че да може да се провери по друг метод и обработени. Не виждам никаква разлика между първите 12 реда и последните 9 реда. UITableView може да се превърта, така че за да стигнете до редовете след 11-ия ред, трябва да превъртите до дъното
Ето кода за задаване на accessoryType:
#pragma mark didSelectRowAtIndexPath
- (void) tableView:(UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath {
// get the cell that was selected
UITableViewCell *theCell = [tableView cellForRowAtIndexPath:indexPath];
if(theCell.accessoryType != UITableViewCellAccessoryCheckmark)
theCell.accessoryType = UITableViewCellAccessoryCheckmark;
else
theCell.accessoryType = UITableViewCellAccessoryNone;
}
Ето кода, в който проверявам accessoryType и го обработвам:
-(void) moveServices { // (moves checked tableViewRows to services tableview)
NSMutableString *result = [NSMutableString string];
for (int i = 0; i < [servicesArray count]; i++) {
NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:0];
[tvServices scrollToRowAtIndexPath:path atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
UITableViewCell *cell = [tvServices cellForRowAtIndexPath:path];
if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
[result appendFormat:@"%@, ",cell.textLabel.text];
NSLog(@"\n\ni: %d\ncell.accessoryType: %d\ncell.textLabel: %@",i,cell.accessoryType, cell.textLabel);
}
}
if (result.length > 2) { // move to text box in main menu
storeServices =[result substringToIndex:[result length] - 2];
}
}