J'ai un petit problème. J'ai sous-classé UIAlertView et je l'ai nommé UIDisclaimerAlertView.Problème lors du sous-classement de UIAlertView et utilisation de la sous-classe en tant que délégué
Jusqu'ici tout va bien, la sous-classe fonctionne bien. Mais maintenant je voulais utiliser cette classe comme son propre délégué. Donc, dans ma sous-classe, j'ai utilisé: self.delegate = self;
Je l'ai fait parce que je voulais tout dans le même fichier de classe.
Maintenant, le problème auquel je fais face est que les méthodes de mes délégués sont appelées, mais les paramètres sont (null)
.
Par exemple:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"Trying: %@", buttonIndex);
}
Returns (null) everytimes. Des idées pourquoi? J'ai aussi essayé [super setDelegate: self];
(pour dire directement la superclasse (UIAlertView)) et ça fait la même chose.
Voici le fichier de mise en œuvre complète:
#import "UIDisclaimerAlertView.h"
#import "PremierSoinsAppDelegate.h"
#import "BlocTexte.h"
@implementation UIDisclaimerAlertView
@synthesize dialogKey, plist, plistPath;
- (id)initWithKeyAndBlocTexteId:(NSString *)key BlocTexteId:(NSString *)blocTexteId
{
if (self = [super init])
{
// Fetching content
BlocTexte *blocTexte = [[BlocTexte alloc] init];
NSString *messageString = [[blocTexte getBlocTextes:blocTexteId] objectAtIndex:1];
// Setting superclass' properties
self.title = @"Disclaimer";
self.message = messageString;
[super setDelegate: self];
[self addButtonWithTitle: @"Ok"];
[self addButtonWithTitle: @"Toujours"];
// Setting plist key
self.dialogKey = key;
// Loading plist content
PremierSoinsAppDelegate *AppDelegate = (PremierSoinsAppDelegate *)[[UIApplication sharedApplication] delegate];
self.plistPath = [AppDelegate saveFilePath:@"disclaimers.plist"];
self.plist = [[NSMutableDictionary alloc] initWithContentsOfFile:self.plistPath];
[blocTexte release];
}
return self;
}
- (void)show {
[super show];
}
- (void)toujours
{
[self.plist setValue:@"1" forKey:self.dialogKey];
[self.plist writeToFile:self.plistPath atomically:YES];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"Trying: %@", buttonIndex);
}
@end
Oh merde, je suis tellement bête. Je fais toujours la même erreur! Merci pour cela, ça marche maintenant ... – TomShreds