views:

235

answers:

1

I want to allow a pushed to set parentViewController's instance variables. For instance, VC1 (the parent) has a bunch of textfields and what not which are filled from VC2 (the child). VC2 is pushed onto the stack by VC1. I've tried doing like parentViewController.myString = "foo"; however since parentViewController is a UIViewController, I can't edit the myString field.

Basically, my question is "How can I access the parent's instance variables?"

Edit: I tried the solution here: http://stackoverflow.com/questions/1368757/setting-property-value-of-parent-viewcontroller-class-from-child-viewcontroller but it is chocked full of syntax errors.

+2  A: 

Have the parent view controller subclass UIViewController (e.g. ParentViewController), implement all the properties for instance variables you wish to manipulate, and set the variables as ((ParentViewController *)parentViewController).myString = @"foo";.

E.g.

@interface ParentViewController : UIViewController {
    NSString *myString;
}
@property (nonatomic, retain) NSString *myString;
@end

and

@implementation ParentViewController

@synthesize myString;

@end
MrMage
Thank you kindly, this worked perfectly! I tried casting, I forgot the 2 ('s in the beginning of the statement.
Yakattak