Я проверил ваши топ коды.С ними все в порядке.Единственная возможная причина в том, что, как вы сказали, вы пошли в другой VC, вы уже избавились от вашего tableViewController из памяти.Вот простой пример: ![enter image description here](https://i.stack.imgur.com/FowRr.png)
Если ваш tableView - самый правильный, и когда вы вернетесь к среднему vc, ваш правый будет удален из памяти.Затем, когда вы нажимаете кнопку назначить и на самом деле, вы загружаете совершенно новый tableViewController.
В результате будет вызван viewDidLoad, и ваш tableViewController снова перейдет в исходное состояние.
Вы можете установить точку останова в func viewDidLoad (), чтобы проверить эту ситуацию.Если это не называется, когда вы вернетесь, вы можете пойти.В противном случае все будет сброшено.Все, что вы удаляете, появится снова, как и должно.
Это простой пример.Ваш случай может быть немного сложным.Но если ваш tableviewcontroller называется ViewDidLoad (), у вас где-то должны быть какие-то неприятности.
Надеюсь, это поможет вам.