didSelectRowAtIndexPath中的自定义委托方法

我试图触发委托方法内的自定义委托方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath。 一切看起来都很好,但我从来没有达到自定义的委托方法,它应该通过点击一行来触发。 这里是我的代表团的执行情况:

@class SettingsList;
@protocol SettingsListDelegate

- (void) retrieveSettings:(SettingsList*)tableController Nazov:(NSString*)Nazov;

@end


@interface SettingsList : UITableViewController {

    id        delegate;
}

@property (nonatomic, assign) id              delegate;

@end


@synthesize delegate;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSString *Nazov = [NSString stringWithString:[[self displayedObjects] objectAtIndex:indexPath.row]];

    NSLog(@"Vybral som %@", Nazov);
    [delegate retrieveSettings:self Nazov:Nazov];

}

代理的属性定义是正确的,但由于<>它是作为标签采用的,因此在本网站上不可见。

在第二节课中就是这样


@interface ShakeControl : UIViewController 

- (void) retrieveSettings:(SettingsList*)tableController Nazov:(NSString*)Nazov{

}

但在这种情况下从来没有真正达到过。 不知道什么是错的,因为使用委托多次之前,工作正常,现在停顿了几个小时...任何帮助,将不胜感激..谢谢


你应该这样做:在标题:

@protocol SomeControllerDelegate <NSObject>
@optional
  - (void) somethingSelected: (Anything *)selection;
@end
@interface SomeController : UITableViewController
{
  id <SomeControllerDelegate> delegate;
}
@property (nonatomic, retain) id<SomeControllerDelegate> delegate;

在代码中:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  [self.delegate somethingSelected:(Anything *)data];
}

在另一个类中 - 添加到定义中:

@interface ShakeControl : UIViewController <SomeControllerDelegate>
链接地址: http://www.djcxy.com/p/84417.html

上一篇: a custom delegate method inside didSelectRowAtIndexPath

下一篇: UIAccelerometer EXC