I want to send data to parentviewcontroller but the following code crashes. Give me the solution
Post *vc;
vc.abc =@\"Comment Conttroller\";
[self.parentView
vc
doesn't seem to be initialized.
You can probably do this,
vc = (Post *)self.parentViewController;
vc.abc = @"Comment Conttroller";
[vc dismissModalViewControllerAnimated:YES];
Since the view controller you want to affect is the parentViewController
, you should be able to cast and set the abc
property.
Take this in .h file in ParentViewController
NSString *strABC;
Make below function in ParentViewController
-(void)setString:(NSString *)strEntered{
strABC=strEntered;
}
Now In Post view controller do like this:
ParentViewController *objSecond =
[[ParentViewController] initwithNibName:@"parentView.xib" bundle:nil];
[objSecond setString:@"Comment Controller"];
[self.navigationController pushViewController:objSecond animated:YES];
[objSecond release];
Now, In secondViewController viewWillAppear
method write this.
-(void)viewWillAppear:(BOOL)animated{
lblUserInput.text = strABC;
}
If you are not using UINavigationContoller
then you can do something like this.
SecondViewControler *objSecond =
[[SecondViewController] initwithNibName:@"secondview.xib" bundle:nil];
[objSecond setUserInput:txtUserInput.text];
[objSecond viewWillAppear:YES];
[self.view addSubview:objSecond];
[objSecond release];
Put this in your parent controller in viewDidLoad
// get register to fetch notification
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(yourNotificationHandler:)
name:@"MODELVIEW DISMISS" object:nil];
// --> Now create method in parent class as;
// Now create yourNotificationHandler: like this in parent class
-(void)yourNotificationHandler:(NSNotification *)notice{
NSString *str = [notice object];
}
Put following to your child class where
-(void)dissmissModelView{
[self dismissModalViewControllerAnimated:YES];
NSLog(@"DismissModalviewController");
//raise notification about dismiss
[[NSNotificationCenter defaultCenter]
postNotificationName:@"MODELVIEW DISMISS"
object:@"Whatever you want to send to parent class"];
}
as soon as model view get dismiss yourNotificationHandler get executed and whatever you pass as an objet will get fetch in your parent class. Please ask if still need some clarification.