У меня есть ViewController, который я создаю несколько раз друг за другом в Navigation Controller. У меня есть набор переменных свойств, которые я передаю каждому экземпляру.
Что происходит сейчас, так это то, что когда я возвращаюсь в контроллере навигации к предыдущему экземпляру, переменные свойства все еще имеют значение из более нового экземпляра. Кажется, как будто эти переменные разделены между экземплярами ...
Я объявляю свою переменную в файле .h следующим образом
@interface MyViewController : UITableViewController{
NSMutableArray *items;
}
@property (nonatomic, strong) NSMutableArray *items;
При переходе на новый экземпляр я использую следующий код для создания экземпляра и передачи переменных:
MyViewController *newInstance = [[MyViewController alloc] init];
newInstance.items = self.items;
[self.navigationController pushViewController:newInstance animated:YES]
В дальнейшем это работает, и я могу добавлять предметы по пути, делая выбор. Но когда я возвращаюсь к предыдущему экземпляру и добавляю другой элемент, этот новый элемент добавляется к тому, который я добавил ранее. Я хочу, чтобы у старого экземпляра была более старая версия этой переменной.
Я пробовал несколько вещей, таких как использование метода копирования при передаче переменной:
newInstance.items = [self.items copy];
И объявить это по-другому. Использование слабых и копирование вместо сильных.
Я также пытался создать локальные переменные и загрузить их с этими данными, но у меня ничего не получалось. Кто-нибудь знает, как мне добиться того, чего я хочу?