У меня есть контроллер представления с методом делегата, который должен быть вызван, но это не так?Метод делегата не называется?
NotifyingViewController.h
@protocol NotifyingViewControllerDelegate <NSObject>
@required
- (void)iWasAccepted;
@end
@interface NotifyingViewController : UIViewController
@property (nonatomic, weak) id<NotifyingViewControllerDelegate> delegate;
NotifyingViewController.m
-(void)someMethod{
[self.delegate iWasAccepted];
[self dismissViewControllerAnimated:YES completion:nil];
}
NotifiedViewController.h
#import "NotifyingViewController.h"
@interface NotifiedViewController : UIViewController <NotifyingViewControllerDelegate>
NotifiedViewController.m
-(void)iWasAccepted{
[self saveIntoDB];
NSLog(@"DELEGATE RAN");
}
По какой-то причине контроллер, который должен быть уведомлен, не является. Контроллер уведомлений отклоняет значение метода, который предупреждает о запуске функции делегата, но делегат не запускает эту функцию, потому что это не NSLog. Любые идеи почему?
Где вы назначаете 'NotifiedViewController' как делегата NotifyingViewController'? –
Ваш 'делегат' является ссылкой« слабый »(как и должно быть); вы уверены, что он не стал «ноль», когда вы его называете? – Arkku
@ 0x7fffffff: Я думал, вам нужно всего лишь сделать это в UIViewController: NSObject <> part? Есть ли еще что-то еще? Извините, я новичок в методах делегирования :) –