doSelectRowAtIndexPath中的自定义委托方法 [英] a custom delegate method inside didSelectRowAtIndexPath
问题描述
我正在委托方法中触发一个自定义委托方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath。一切看起来都很好,除了我从来没有达到我的自定义委托方法,应该通过点击一行触发。
这是我的执行委托:
I am trying to trigger a custom delegate method inside the delegate method - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath. Everything looks fine except I have never reached my custom delegate method which should be triggered by tapping a row. here is my implementation of delegation:
@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];
}
代理的属性定义是正确的,但在该网站上不可见,因为<它正在作为一个标签。
The property definition of delegate is correct, but not visible on this site due to <> it is taking as a tag.
在第二类是这样的
@interface ShakeControl : UIViewController
- (void) retrieveSettings:(SettingsList*)tableController Nazov:(NSString*)Nazov{
}
不知道什么是错误的,因为使用多次委托和工作正常,现在卡住了几个小时...任何帮助,将赞赏
..thanks
but never actually reach it in this case. Not sure what is wrong because use to delegate many times before and work fine and now stucked for hours...any help, will be appreciated ..thanks
推荐答案
你应该这样做:
在标题:
You should do it like this: In header:
@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];
}
在另一个类中 - 添加到定义中:
In another class - add to definition:
@interface ShakeControl : UIViewController <SomeControllerDelegate>
这篇关于doSelectRowAtIndexPath中的自定义委托方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!