I've tried following this post re: passing data back to a prior viewController without much luck. I've spent more time than I care to admit on this, I've read all I can, yet nothing I've found here works.
Passing Data between View Controllers
Here's what I'm trying to do:
Legend: AddPOIViewController -----------> CategoryViewController
Step 1: empty textField ---segue---> selectCategory
Step 2: setCategory on CategoryViewController
Step 3: AddPOIViewController <--delegate-- setCategory
I have an AddPOIViewController
(A) and a CategoryViewController
(B). I have a segue
that works fine from A to B. I want to select a category in B and dump it back in A.
Here's what I've done:
AddPOIViewController.h
In my segue from AddPOIViewController
to CategoryTableViewController
, I set the delegate as follows:
CategoryTableViewController *categoryTableViewController = [navigationController viewControllers][0];
categoryTableViewController.delegate = (id<CategoryTableViewControllerDelegate>)self;
// Delegate method
- (void)addItemViewController:(CategoryTableViewController *)controller didSelectCategory:(LocationCategory *)selectedCategory {
NSLog(@"This was returned from CategoryTVC: %@", self.selectedCategory);
}
CategoryTableViewController.h
// This property sets CategoryTVC as the delgate of AddPOIViewController
@property (nonatomic, weak) id <CategoryTableViewControllerDelegate> delegate;
// This property is public so the AddPOIVC knows about it
@property (nonatomic, strong) LocationCategory *selectedCategory;
CategoryTableViewController.h
- (IBAction)done:(id)sender {
[self.delegate categoryTableViewControllerDidSave:self];
// This passes the value back to the AddPOIViewController
[self.delegate addItemViewController:self didSelectCategory:self.selectedCategory];
}