Setting ivar in objective-c from child view in the iPhone

Posted by Ivan on Stack Overflow See other posts from Stack Overflow or by Ivan
Published on 2010-03-31T09:19:13Z Indexed on 2010/03/31 9:23 UTC
Read the original article Hit count: 484

Hi there!

Maybe a FAQ at this website.

I have a TableViewController that holds a form. In that form I have two fields (each in it's own cell): one to select who paid (single selection), and another to select people expense is paid for (multiple selection).

Both fields open a new TableViewController included in an UINavigationController.

Single select field (Paid By) holds an object Membership Multiple select field (Paid For) holds an object NSMutableArray

Both vars are being sent to the new controller identically the same way:

mySingleSelectController.crSelectedMember = self.crPaidByMember;
myMultipleSelectController.crSelectedMembers = self.crSelectedMembers;

From Paid for controller I use didSelectAtIndexPath method to set a mutable array of Memberships for whom is paid:

 if ([[tableView cellForRowAtIndexPath:indexPath] accessoryType] == UITableViewCellAccessoryCheckmark) {
  [self.crSelectedMembers removeObject:[self.crGroupMembers objectAtIndex:indexPath.row]];
  //...
 }
 else {
  [self.crSelectedMembers addObject:[self.crGroupMembers objectAtIndex:indexPath.row]];
  //...
 }

So far everything goes well. An mutable array (crSelectedMembers) is perfectly set from child view. But... I have trouble setting Membership object.

From Paid By controller I use didSelectAtIndexPath to set Membership:

[self setCrSelectedMember:[crGroupMembers objectAtIndex:indexPath.row]];

By NSlogging crSelectedMember I get the right selected member in self, but in parent view, to which ivar is pointed, nothing is changed.

Am I doing something wrong? Cause I CAN call the method of crSelectedMembers, but I can't change the value of crSelectedMember.

© Stack Overflow or respective owner

Related posts about objective-c

Related posts about iphone