Я пытаюсь реализовать делегат, чтобы позволить модальному представлению передавать данные обратно в UIViewController.
У меня есть два контроллера представления, мой основной UIViewController и модальный. Используя приведенный ниже код, [делегат translationTextEntered: @ "Test"]; не влияет на главный экран (то есть «translationTextEntered» никогда не вызывается)
Мой главный контроллер
Содержит метод, вызываемый, когда модальное значение имеет значение пользователя:
MainViewController.h
- (void)translationTextEntered:(NSString *)txt;
MainViewController.m
- (void)translationTextEntered:(NSString *)text
{
[self dismissModalViewControllerAnimated:YES];
_text.text = [NSString stringWithFormat:@"%@" , text];
}
Мой модальный контроллер
Содержит UITableView, который содержит делегата и, когда элемент выбран, должен вызывать обратный вызов делегата.
SuggestionViewController.h
@protocol SelectTranslationDelegate <NSObject>
- (void)translationTextEntered:(NSString *)text;
@end
@interface SuggestionViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, SelectTranslationDelegate>
{
id<SelectTranslationDelegate> delegate;
}
@property (nonatomic, weak)id delegate;
SuggestionViewController.h
@synthesize delegate = _delegate;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
...
[delegate translationTextEntered:@"f"];
}