【问题标题】:a custom delegate method inside didSelectRowAtIndexPathdidSelectRowAtIndexPath 中的自定义委托方法
【发布时间】:2011-07-01 08:47:10
【问题描述】:

我正在尝试在委托方法中触发自定义委托方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath。一切看起来都很好,只是我从来没有达到我的自定义委托方法,应该通过点击一行来触发。 这是我的委托实现:

@class 设置列表; @protocol SettingsListDelegate - (void)retrieveSettings:(SettingsList*)tableController Nazov:(NSString*)Nazov; @结尾 @interface 设置列表:UITableViewController { 身份代表; } @property (nonatomic, assign) id 委托; @结尾 @synthesize 代表; - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSString *Nazov = [NSString stringWithString:[[self displayedObjects] objectAtIndex:indexPath.row]]; NSLog(@"Vybral som %@", Nazov); [委托retrieveSettings:self Nazov:Nazov]; }

delegate 的属性定义是正确的,但是由于 它被当作一个标签,所以在这个网站上不可见。

二等舱是这样的

@interface ShakeControl:UIViewController - (void)retrieveSettings:(SettingsList*)tableController Nazov:(NSString*)Nazov{ }

但在这种情况下从未真正达到它。不知道出了什么问题,因为以前多次委托并且工作正常,现在卡了几个小时......任何帮助,将不胜感激 ..谢谢

【问题讨论】:

  • 你看到“NSLog(@"Vybral som %@", Nazov);"信息?如果你在那里设置一个断点,你能确认 delegate 不是 nil 吗?
  • 一个想法:不应该用“self.delegate”代替“delegate”吗?另外,请检查您是否确实在某处分配了委托。
  • 确保(使用调试器)委托已分配内存。我认为,它是 0x0,这可能是它没有被调用的原因。而且我没有看到您将对象分配给委托的代码。 (如 self.delegate = 委托)
  • 是的,PengOne/Harinder 是对的人,忘记分配将 self 分配给委托属性...谢谢

标签: iphone objective-c delegates uitableview


【解决方案1】:

你应该这样做: 在标题中:

@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>

【讨论】:

  • ShakeControl.m如何获取tableView didSelectRowAtIndexPath获取委托方法?
猜你喜欢
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多