У меня есть контроллер просмотра, встроенный в контроллер навигации с одним свойством (неатомный сильный NSMutableArray * myData), когда я нажимаю второе представление. Я также передаю данные этого массива в это представление, используя этот метод :Передача данных обратно между View Controllers embed в UINavigationController
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"secondView"]) {
SecondViewController *svc = [segue destinationViewController];
svc.myDataInSecondView = self.myData;
}
мой вопрос: Почему, если я изменить какие-либо значения в моем myDataInSecondView массиве и чем я вернусь к первому просмотреть мои значения в массиве MyData изменяются, а? Я всегда думал, что мне нужно использовать пользовательские протоколы и делегаты для передачи любых данных обратно в предыдущее представление.
Если вы передаете указатель на данные другому контроллеру и который меняет данные, он изменяется для обоих. – rooster117
Да в этом случае, но это зависит от того, как объявлено это свойство. – pdrcabrod
Имеет ли значение, если я объявлю свойство с первого взгляда слабым, а не сильным? Если это будет слабое свойство, и я перейду во второе представление, объект myData будет освобожден? – Guferos