В моем приложении есть UITableView, в котором хранится список URL-адресов.Над таблицей находятся UITextField и UIButton.Когда пользователь вводит какой-то URL в textField, а затем нажимает кнопку, я добавляю этот URL, как верхний элемент в tableView.Затем, когда пользователь выбирает любой из URL-адресов, я хочу создать кнопку в выбранном UITableViewCell, чтобы позволить пользователю следовать этому URL-адресу (на самом деле, это не важно).Вот определение метода didSelectRowAtIndexPath
:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [self.recentUrlsTableView cellForRowAtIndexPath:indexPath];
UIButton *button = [UIButton new];
button.frame = CGRectMake(cell.frame.size.width - 34, cell.frame.origin.y + 10, 24, 24);
button.backgroundColor = [UIColor lightGrayColor];
[button setTitle:@">" forState:UIControlStateNormal];
[cell.contentView addSubview:button];
[button release];
}
Но я хочу, чтобы эти кнопки исчезали при отмене выбора ячейки.Итак, я попробовал эту вещь (я думаю, это выглядит глупо, но, к сожалению, я не знал лучшего способа найти там свою кнопку):
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [self.recentUrlsTableView cellForRowAtIndexPath:indexPath];
for (UIView *subview in cell.subviews)
{
if ([subview isKindOfClass:[UIButton class]])
if ([[(UIButton*)subview titleLabel].text isEqualToString:@">"])
{
[subview removeFromSuperview];
[subview release];
}
}
}
Но эта штука, похоже, работала неправильно - вместо того, чтобы выпускатьи, вообще исчезнув, кнопка начала появляться в других строках - даже в тех, которые были пустыми.
После этого я пытался выполнять одинаковые действия для каждой строки в методе - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
.Но это также не помогло.
Полагаю, есть какая-то тривиальная проблема, но я не могу ее найти.Поэтому я буду очень признателен за любую вашу помощь!