Почему это меняется? Поскольку значение в cId по-прежнему равно нулю.
Что я делаю не так?
Вы создаетедругой экземпляр для класса A и присвоение значения его атрибуту (cId).
В вашем случае экземпляр класса A (скажем, A1), из которого вы выдвинули класс B, совершенно отличается и не имеет никакого отношения к экземпляру класса A (например, A2), который вы создали в методе sentBack.Поэтому присвоение значения в A2 не будет отражаться в A1.
Итак, что вам нужно сделать?
- (void) sentBack : (int) cIdValue {
if([self.navigationController.viewControllers count]> 0) {
A *obj =[self.navigationController.viewControllers objectAtIndex:
[self.navigationController.viewControllers count]-1];
obj.cId=cIdValue;
[self.navigationController popViewControllerAnimated:YES];
}
}
Здесь вы получаете доступ к A1 (экземпляр класса A, откудавы вытолкнули сам класс B) из стека навигации, поэтому теперь A2 (A *obj
) указывает на исходный A1.Теперь присвойте cId
со значением int
и поп-буквой B, и вы получите новое значение, присвоенное cId
.