【问题标题】:Why delegate is not working?为什么委托不工作?
【发布时间】:2014-04-25 08:07:35
【问题描述】:

我的代表:

@class UpdateUserSummary;
@protocol UpdateSummaryDelegate <NSObject>

- (void)updateSummaryDidCancel:(UpdateUserSummary*)controller;
- (void)updateSummaryDone:(UpdateUserSummary*)controller;

@end

在界面:

@interface UpdateUserSummary : UIViewController
@property (nonatomic, weak) id<UpdateSummaryDelegate> delegate;
@end


- (IBAction)done:(id)sender {
    [self.delegate updateSummaryDidCancel:self];
}

代表的回应:

-(void)updateSummaryDidCancel:(UpdateUserSummary *)controller
{
    // just close modal vc
    [self dismissViewControllerAnimated:YES completion:nil];
 }

【问题讨论】:

  • 您需要澄清您的问题到底是什么,您发布的代码没有解释它。
  • 你是否设置了 UpdateUserSummary.delegate = self @ 你的类实现了 UpdateSummaryDelegate 协议?
  • 是的,以前它工作正常,当我添加新的视图控制器时,我遇到了这个问题,但是我撤消了我所做的所有事情,但什么也没做
  • 一个 UpdateUserSummary 对象一次只能为一个实现者设置它的委托,解决方法是在多个视图控制器共享它时声明委托 1、委托 2 等
  • @CalinChitu,你是对的,我该怎么做才能避免这种情况?

标签: ios objective-c delegates delegation


【解决方案1】:

使用这个, UpdateUserSummary.delegate = self; 您在实现类中调用委托的位置。

【讨论】:

  • 这是你的意思吗? - (IBAction)done:(id)sender { [self.delegate updateSummaryDidCancel:self]; }
  • 我想你找到了解决办法。
  • 请参考正式协议。
【解决方案2】:
@protocol MUpdateSummaryDelegate;

@interface MUpdateSummary : NSObject

@property (assign) id<UpdateSummaryDelegate> delegate; //You need this

@end


@protocol UpdateSummaryDelegate <NSObject>

-(void)updateSummaryDidCancel:(UpdateUserSummary *)controller;

@end

在你调用delegate的类中,需要设置delegate。

MUpdateSummary *mUpdateSummary = [[MUpdateSummary alloc] init];
mUpdateSummary.delegate = self;

【讨论】:

  • 这是你的意思吗?接口 UpdateUserSummary : UIViewController @property (nonatomic, weak) id delegate;结束 - (IBAction)done:(id)sender { [self.delegate updateSummaryDidCancel:self]; }
  • 确保在调用委托方法的类中设置委托属性。 "mUpdateSummary.delegate = self;"
  • '@interface DEMOSSecondViewController ()' '-(void)updateSummaryDidCancel:(UpdateUserSummary *)controller' '{' '//刚刚关闭modal vc' '[self dismissViewControllerAnimated:YES 完成:零];' '}'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多