Я знаю, что этот вопрос задан и много раз ответил здесь. Но я имею дело с этой штукой в первый раз и до сих пор не в состоянии добиться совершенной реализации этого в моем сознании. В этом коде у меня есть метод делегата, который я реализую для передачи данных от SecondViewController
до FirstViewController
.
FirstViewController.h
#import "SecondViewController.h"
@interface FirstViewController : UITableViewController<sampleDelegate>
@end
FirstViewController.m
@interface FirstViewController ()
// Array in which I want to store the data I get back from SecondViewController.
@property (nonatomic, copy) NSArray *sampleData;
@end
@implementation FirstViewController
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
SecondViewController *controller = [[SecondViewController alloc] init];
[self.navigationController pushViewController:controller animated:YES];
}
@end
SecondViewController.h
@protocol sampleDelegate <NSObject>
- (NSArray*)sendDataBackToFirstController;
@end
@interface SecondViewController : UITableViewController
@property (nonatomic, strong) id <sampleDelegate> sampleDelegateObject;
@end
SecondViewController.m
@interface SecondViewController ()
@property (strong, nonatomic) NSArray *dataInSecondViewController;
@end
@implementation SecondViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.dataInSecondViewController = [NSArray arrayWithObjects:@"Object1", @"Object2", nil];
}
- (NSArray*)sendDataBackToFirstController
{
return self.dataInSecondViewController;
}
@end
Я делаю это правильно? Все, что я хочу, чтобы он отправил данные в self.dataInSecondViewController
в FirstViewController
и сохранил их там в свойстве NSArray
sampleData
FirstViewController
.
Как-то я не могу получить доступ к sendDataBackToFirstController
в FirstViewController
. Какие еще вещи мне не хватает для доступа к sendDataBackToFirstController
там?