2015-12-22 3 views
-3

Мое приложение для iPhone с функцией галочки на tableview, все отлично работает на iPhone 6, но сталкивается с проблемой с iPhone 5.Если я выбираю строку, функция проверки не работает. Я не могу для выяснения точной причины. Как я могу проверить проблему? Пожалуйста, помогите мне. вот мой UITableViewПриложение для iPhone, не работающее на iPhone 5s iOS 9.2

делегат код метода:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    selectedTransIdArray = [NSMutableArray arrayWithArray:userSession.transactionArray]; 
NSLog(@"selectedTransIdArray first %@",selectedTransIdArray); 

NSString *state = [dataTransArray objectAtIndex:indexPath.row]; 

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
if(cell.accessoryType == UITableViewCellAccessoryNone) 
{ 
    cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    [selectedTransIdArray addObject:state]; 
    userSession.transactionArray = selectedTransIdArray; 
} 
else 
{ 
    cell.accessoryType = UITableViewCellAccessoryNone; 
    [selectedTransIdArray removeObject:state]; 
    userSession.transactionArray = selectedTransIdArray; 
} 

NSLog(@"selectedTransIdArray %@",selectedTransIdArray); 
userSession.transactionArray = selectedTransIdArray; 
[[NSUserDefaults standardUserDefaults] setObject:selectedTransIdArray forKey:@"aKey"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

}

+0

Что вы имеете в виду галочки функциональности. Не могли бы вы разместить свой код? – Arun

+0

Какую функциональность вы добавили? У вас добавлен пользовательский интерфейс в раскадровке или программно. –

+5

Вы уверены, что ваш настольный просмотр не слишком широк на iPhone 5? – rmaddy

ответ

0

и есть написать алгоритм, который сказать и что эти данные строки проверяется или нет. и, соответственно, изменить значение проверяемого objectatindex значение

if (indexPath.row == checked){ 
    cell.accessoryType = UITableViewCellAccessoryCheckmark; 
} else { 
    cell.accessoryType = UITableViewCellAccessoryNone; 
} 
0

Я думаю, что условие вы проверяете не ведет себя, как вы ожидали. Проверка вспомогательного типа клетки не работает, вместо этого вы можете проверить, является ли state присутствует в selectedTransIdArray как этот

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    selectedTransIdArray = [NSMutableArray arrayWithArray:userSession.transactionArray]; 
NSLog(@"selectedTransIdArray first %@",selectedTransIdArray); 

NSString *state = [dataTransArray objectAtIndex:indexPath.row]; 

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
if(![selectedTransIdArray containsObject:state]) 
{ 
    cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    [selectedTransIdArray addObject:state]; 
} 
else 
{ 
    cell.accessoryType = UITableViewCellAccessoryNone; 
    [selectedTransIdArray removeObject:state]; 
} 

NSLog(@"selectedTransIdArray %@",selectedTransIdArray); 
userSession.transactionArray = selectedTransIdArray; 
[[NSUserDefaults standardUserDefaults] setObject:selectedTransIdArray forKey:@"aKey"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 
} 
Смежные вопросы