Почему этот делегат - протокол не отвечает?

У меня есть метод с именем dateSelectViewController, объявленный в моем файле .h как протокол:

@class DateSelectViewController;
@protocol DateSelectViewControllerDelegate 

- (void)dateSelectViewController:(DateSelectViewController *)sender
                         theDate:(id)stringDate;

@end

Ниже протокола я объявляю делегата:

@property (nonatomic, weak) id <DateSelectViewControllerDelegate> delegate;

и в файле реализации я синтезирую делегат и отправляю сообщение делегату, когда в моем представлении нажата кнопка «Готово»:

- (IBAction)DonePressed:(id)sender {
    NSDate *chosen = [datePicker date];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"MM/dd/yyyy"];
    NSString *formatedDate = [formatter stringFromDate:chosen];

    //sending a message to the delegate
    [self.delegate dateSelectViewController:self theDate:formatedDate];

    [self.navigationController popViewControllerAnimated:YES];
}

В файле .h, которому делегируется, я импортирую файл .h делегатов. , И в файле .m я соответствую протоколу:

@interface MakePlantTVC ()<DateSelectViewControllerDelegate>
- (void)dateSelectViewController:(DateSelectViewController *)sender
                     theDate:(id)stringDate
{
    self.displayDate.text = stringDate;
    NSLog(@"delegate working");
}

По какой-то причине это работает вообще Когда кнопка «Готово» нажата в моем классе делегаторов, кнопка делает то, что должна, и выталкивает представление контроллер, но это похоже на то, что сообщение никогда не отправляется делегату. Сначала я подумал, что могу отправить сообщение nil, но оно имеет идентификатор типа, так что этого не должно быть. Почему сообщение не отправляется?

0
задан Hailei 25 April 2012 в 16:37
поделиться