Судя по виду этого кода, менее вероятно, что вы получаете «новую метку, смещенную поверх других моих меток», и, скорее, рисунок не может перекрашиваться поверх вещей должным образом. Чтобы сделать это, вы можете попробовать вызвать [tableView reloadData] или использовать наблюдателя, но я думаю, что есть лучший способ.
Вы должны иметь возможность передавать объект в другое представление, изменять объект (вместо метки) и перемещать данные таким образом. Другими словами, в табличном представлении он загружает объекты, а внутри cellForRowAtIndexPath загружает ячейки и устанавливает имена меток, используя данные объекта. Нажмите на второй вид и передайте объект как свойство. Управляйте этим свойством все, что вы хотите на этом экране, и когда вы открываете представление, особой логики нет. В первом табличном представлении снова отображается то, что сохранено внутри того объекта, которым вы манипулировали.