My cheatsheet on how to set up Protocols + Delegation in iOS:
-
TargetViewController.h:
- Create protocol
@protocol TargetViewControllerDelegate
@required
…methods…
@end
- Create delegate
@property (weak, nonatomic) id delegate;
-
SourceViewController.h:
- #import “TargetViewController.h”
- Conform to protocol: <TargetViewControllerDelegate>
-
SourceViewController.m:
- Add #pragma mark – TargetViewController Delegate
- Define methods and dismiss TargetViewController
[self dismissViewControllerAnimated:YES completion:nil];
- In prepareForSegue,
if ([segue.destinationViewController isKindOfClass: [TargetViewController class]) }
TargetViewController *targetViewController = segue.destinationViewController;
targetViewController.delegate = self;
}
-
TargetViewController.m:
- Define methodName as [self.delegate methodName];