doSelectRowAtIndexPath中的自定义委托方法 [英] a custom delegate method inside didSelectRowAtIndexPath

查看:117
本文介绍了doSelectRowAtIndexPath中的自定义委托方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在委托方法中触发一个自定义委托方法 - (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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆