J'ai créé une coutume UITableViewCellUIButton créé dans des accidents de la cellule UITableView quand on tape
a ajouté un bouton dans sa zone initWithStyle:
favoriteButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
favoriteButton.backgroundColor = [UIColor clearColor];
[favoriteButton setTitle:@"Play" forState:UIControlStateNormal];
[favoriteButton addTarget:self action:@selector(favoriteClick:) forControlEvents:UIControlEventTouchUpInside];
favoriteButton.center = self.center;
définir son cadre et mise en page:
- (void)layoutSubviews {
[super layoutSubviews];
CGRect contentRect = self.contentView.bounds;
CGFloat boundsX = contentRect.origin.x;
CGRect frame;
frame = CGRectMake(boundsX+200, 44, 40, 40);
favoriteButton.frame = frame;
}
et puis dans mon fichier tableviewcontroller.m j'utilise cette tableviewcell et l'utilisateur clique sur pour aller à l'action dans ce tableviewcontroller.m code
-(void)favoriteClick:(id)sender// forEvent:(UIEvent*)event
{
NSLog(@"click");
}
mais quand je tape sur le bouton que je reçois une exception non gérée:
2010-07-24 16:06:02.197 Film Fest[10342:40b] -[ProgramGuideCell favoriteClick:]: unrecognized selector sent to instance 0x6e63ff0
2010-07-24 16:06:02.200 Film Fest[10342:40b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ProgramGuideCell favoriteClick:]: unrecognized selector sent to instance 0x6e63ff0'
*** Call stack at first throw:
(
0 CoreFoundation 0x02a56919 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x02ba45de objc_exception_throw + 47
2 CoreFoundation 0x02a5842b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x029c8116 ___forwarding___ + 966
4 CoreFoundation 0x029c7cd2 _CF_forwarding_prep_0 + 50
5 UIKit 0x00301e14 -[UIApplication sendAction:to:from:forEvent:] + 119
6 UIKit 0x0038b6c8 -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x0038db4a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
8 UIKit 0x0038c6f7 -[UIControl touchesEnded:withEvent:] + 458
9 UIKit 0x00579070 _UIGestureRecognizerUpdateObserver + 3687
10 CoreFoundation 0x02a37d1b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
11 CoreFoundation 0x029cc987 __CFRunLoopDoObservers + 295
12 CoreFoundation 0x02995c17 __CFRunLoopRun + 1575
13 CoreFoundation 0x02995280 CFRunLoopRunSpecific + 208
14 CoreFoundation 0x029951a1 CFRunLoopRunInMode + 97
15 GraphicsServices 0x030b42c8 GSEventRunModal + 217
16 GraphicsServices 0x030b438d GSEventRun + 115
17 UIKit 0x0030fb58 UIApplicationMain + 1160
18 Film Fest 0x00002170 main + 102
19 Film Fest 0x00002101 start + 53
)
terminate called after throwing an instance of 'NSException'
Je ne vois pas ce que Im faire mal ici ...
pas de chance ici. toujours des accidents. Je me suis assuré de modifier le fichier h et le fichier m, aussi la cellule est programmée donc ce n'est pas vraiment un contexte IBAction ... – theprojectabot
J'ai mis à jour ma réponse. Vous devriez mettre le sélecteur dans la bonne classe. Sinon, vous devez spécifier l'instance dans le sélecteur. –