我不知道为什么我的委托方法没有被调用。下面是我的代码。请告诉我我犯了什么错误。 我已经完成了所有的设置,我相信我犯了一个愚蠢的错误。我的委托方法没有被调用。任何帮助将不胜感激委托方法不叫
LSFiveViewController.h
@protocol OneToOne;
@protocol OneToOne <NSObject>
@optional
-(void)dismissPopOverlsfive;
@end
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "TimeTableViewController.h"
@class TimeTableViewController;
@interface LearningSessionFiveDetailsViewController : UIViewController<UITextFieldDelegate>
{
NSString *bookingString;
}
@property(nonatomic,weak)id<OneToOne>OneToOne;
@end
**LSFiveViewController.m**
@synthesize sessionAndDateLabelObj,OneToOne
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (IBAction)BookSingleSessionAction:(id)sender
{
if (self.OneToOne && [self.OneToOne respondsToSelector:@selector(dismissPopOverlsfive)])
{
[self.OneToOne dismissPopOverlsfive];
}
}
@end
TimeTableViewController.h
#import "OneToOneViewController.h"
#import "LearningSessionFiveDetailsViewController.h"
//other codes
@property(nonatomic,strong)LearningSessionFiveDetailsViewController *LSFiveObj;
@end
TimeTableViewController.m
#import "TimeTableViewController.h"
#import "LearningSessionFiveViewController.h"
#import "UIAlertView+Blocks.h"
- (void)viewDidLoad
{
LSFiveObj=[[LearningSessionFiveDetailsViewController alloc]init];
self.learnSearchFiveClassObj.OneToOne=self;
}
-(void)dismissPopOverlsfive
{
This method is not being called
}
您是否在任何地方使用'setDelegate:'? – 2014-11-21 13:56:06
self.learnSearchFiveClassObj.OneToOne = self; 这部分代码将作为“集合委托”工作 – iOSDeveloper 2014-11-21 13:58:50
尝试将“< OneToOne >”添加到“TimeTableViewController”。尝试检查“如果”中的哪一项测试为否。 – Larme 2014-11-21 14:05:59