2014-02-06 3 views
0

Код, который у меня ниже, позволяет удалять функцию IOS и удалять строку. Проблема заключается в том, что базовая структура данных не удаляется. У меня есть 3 ячейки, Google-Bing-Yahoo, если я удалю Google, ячейка удалит, но Bing движется вверх, становится indexPath.row 0 и наследует действие того, где раньше был Google. Где мне не хватает вызова «эй, удаляй действие в эту ячейку». Или, может быть, у меня есть назначенные ячейки? Должен ли я использовать теги?Прокрутка для удаления не удаляет базовую структуру данных

////My Array 
someData = [[NSMutableArray alloc]init]; 
    [someData addObjectsFromArray:[NSMutableArray arrayWithObjects: @"Google", @"Bing", @"Yahoo", nil]]; 


////Allow cell editing & remove data 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

// Remove the row from data model 
[someData removeObjectAtIndex:indexPath.row]; 

// Request table view to reload 
[tableView reloadData]; 

} 


////Cell Chosen Action 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 


     if(indexPath.row == 0) { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://google.com"]]; 
} 
     if(indexPath.row == 1) { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://bing.com"]]; 
} 
     if(indexPath.row == 2) { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://yahoo.com"]]; 
} 

ответ

1

Ваш didSelectRowAtIndexPath говорит, что независимо от того, строка 0 открывает Google. Когда вы удаляете google, строка 0 теперь бина, но вы все равно открываете для нее Google. Сделайте что-то вроде:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: [NSString stringWithFormat:@"http://%@.com", [someData objectAtIndex:indexPath.row]]]]; 
} 

В основном вы бы формирование URL с именем из массива, устраняя необходимость для любого, если заявления и спутанность сознания.

+0

Имеет смысл. Так что это был мой метод назначения. Спасибо. – Jesse

Смежные вопросы