Я пытаюсь реализовать делегат, чтобы модальное представление передавало данные обратно в UIViewController.Реализация делегата для включения модального представления для передачи данных обратно в UIViewController
У меня есть два контроллера вида, мой основной UIViewController и модальный. Используя приведенный ниже код, [delegate translationTextEntered: @ "Test"]; не влияет на главный экран (т.е. «translationTextEntered» никогда не вызывается)
Мой Главный контроллер
Это содержит метод, который будет вызываться, когда модальное имеет значение пользователя:
MainViewController. ч
- (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"];
}
Фактически вы назначаете 'MainViewController' в качестве делегата' SuggestionViewController'? –
Привет, Пол. Не могли бы вы рассказать об этом с примером? Мой модальный UIViewController: –
Nick