В моем приложении я использую UITableview. В этом методе делегата didselectrow, если я сделал любую операцию, возможно, произойдет просто.UITableview - tableView: didDeselectRowAtIndexPath: метод работает неправильно?
Например я есть 3 строки в Tableview
если выбрать 1 строку (indexPath.row == 0) ничего не произойдет
, если снова выбрать строку 2 (indexPath.row == 1) теперь это вход в консоль indexPath.row == 0, который является предыдущим значением.
, если снова выбрать 1 строку, а затем записать ее предыдущее значение indexPath.row = 1.
Почему это происходит.
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomerInfoViewController *customer = [[EquipmentViewController alloc]initWithNibName:@"CustomerInfoViewController" bundle:nil];
EquipmentViewController *equpment = [[EquipmentViewController alloc]initWithNibName:@"EquipmentViewController" bundle:nil];
ContactsViewController *contacts = [[ContactsViewController alloc]initWithNibName:@"ContactsViewController" bundle:nil];
if(indexPath.row == 0)
{
NSLog(@"one %d",indexPath.row);
[detailsView addSubview:customer.view];
}
if(indexPath.row == 1)
{
NSLog(@"two %d",indexPath.row);
[detailsView addSubview:equpment.view];
}
if(indexPath.row == 2)
{
NSLog(@"three%d",indexPath.row);
[detailsView addSubview:contacts.view];
}
}
Пожалуйста, помогите мне.
Заранее спасибо.
Показать фактический код может быть? – Vladimir
Кажется логичным. Возможно, вывести инициализации в if-statements. Может ли это иметь какое-то отношение к разделам? Может быть, 'NSLog (@"% d% d ", indexPath.row, indexPath.section);' чтобы увидеть, не вызвана ли функция, или ваш код просто ошибочен. Вы должны устранить некоторые варианты, чтобы лучше понять проблему. – DAS