Переменные свойства iOS 5, кажется, совместно используются экземплярами одного и того же viewcontroller - PullRequest
0 голосов
/ 25 января 2012

У меня есть 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];

И объявить это по-другому. Использование слабых и копирование вместо сильных. Я также пытался создать локальные переменные и загрузить их с этими данными, но у меня ничего не получалось. Кто-нибудь знает, как мне добиться того, чего я хочу?

...