Design pattern for å få et objekt til å delegere deler av sine oppgaver til et annet objekt
Vi setter oss selv som delegate i UIAlertView. UIAlertView kaller tilbake på oss ved hjelp av en selector
@implementation MinViewController
- (void)showAlertView {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Advarsel"
message:@"Beskjed"
delegate:self /* Setter oss selv som delegate på UIAlertViewet */
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
}
- (void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"Trykket på en knapp!");
}
@end
// Mulig implementasjon av UIAlertView
@implementation UIAlertView
//[...show...]
/* UIAlertView vises, og kjører følgende kode når man trykker på en knapp */
if ([_delegate respondsToSelector:@selector(alertView:clickedButtonAtIndex:)]) {
/* Kaller funksjonen alertView:clickedButtonAtIndex: på delegatet */
[_delegate alertView:self clickedButtonAtIndex:buttonIndex];
}
//[...]
@end