Создайте протокол для извлечения данных из UINavigationController в UIViewController
У меня есть родительский UIViewController, из которого я представляю UITableViewController с вложением в UINavigationController, из которого мне нужно выбрать несколько строк (в моем случае строки с именами людей), добавить их в ведьму mutableArray, которую я должен отправить обратно в UIViewController.
я пробовал нормальный протокол:
@class TableViewController
@protocol TableViewDelegate <NSObject>
-(void)sendFrom:(TableViewController *)controller theList:(NSMutableArray *)list;
@end
...
@proprety (nonatomic, strong) id<TableViewDelegate> delegate;
...
затем в TableViewController.m ... -(IBAction)dismisController:(id) отправитель { [self.delegate sendFrom:self theList:_theListOfPersons]; [self dismissViewControllerAnimated:YES завершение:nil]; }
тогда ViewController.h
#import "TableViewController.h"
затем я добавляю делегата
<TableViewDelegate>
Затем я реализую метод протокола
-(void)sendFrom:(TableViewController *)controller theList:(NSMutableArray *)list
{
NSLog(@"the list of persons is %@", list);
}
Последнее, что нужно сделать перед тем, как запустить приложение, - установить делегата в segue [[segue destinationViewController] setDelegate:self];
Проблема в том, что мой метод делегата никогда не вызывается. а также, если я проверяю в TableViewController.m viewDidLoad, делегат, как
NSLog(@"%@", self.delegate);
ответ: (ноль)
кто-нибудь может объяснить это?