У меня есть два UIViewControllers (Master
и Detail
, проще говоря). В моем Master Controller
у меня есть tableView
с некоторым списком объектов, и я использую Detail Controller
, чтобы показать детали и изменить некоторые свойства этих объектов.
Это кажется очень простым и понятным.
предположим, у меня есть объект с такой структурой:
class User {
var name = ""
var lastPoints:[LastPoint] = []
}
В моем Master Controller
я покажу список пользователей, а в моем Detail Controller
я хочу иметь возможность удалить lastPoints
.
так что в didSelectRowAt
моего Master Controller
у меня есть:
let suVC = ShowUserViewController()
suVC.currentUser = self.usersToShow[indexPath.row]
self.navigationController?.pushViewController(suVC, animated: true)
и после этого я могу работать с этой новой переменной в моем Detail Controller
. Например, я могу удалить одну из последних точек в currentUser
.
Дело в том, что это lastPoint
будет немедленно удалено из self.usersToShow[indexPath.row]
из Master Controller
, и мне нужно этого избегать (а также я хочу понять, в чем причина такого поведения: да, это кажется логичным и даже удобным в большинстве случаев, но я не помню такого поведения в предыдущих проектах).