По задумке введенные данные после нажатия на кнопку "Save" должны отобразиться в таблице.
Логика такая - нажимая кнопку "Save" введенные данные передаются в базу данных, затем отрабатывает viewDidLoad в котором из бд загружается текущее содержимое массива + введенные данные.
На данный момент после нажатия кнопки "Save" отображается лог с содержимым массива, в котором добавленный элемент присутствует , а таблица контроллера остается без изменений. Новый элемент отображается только после перехода на предыдущий в иерархии контроллер и возращении обратно.
В чем заключается проблема?
Ниже представлены код и скриншот экрана.
Спасибо.
@interface SetVC ()
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (weak, nonatomic) IBOutlet UITextField *kgTextField;
@property (weak, nonatomic) IBOutlet UITextField *repsTextField;
@property (weak, nonatomic) IBOutlet UITextField *noticeTextField;
@property (weak, nonatomic) IBOutlet UILabel *exerciseNameTextLabel;
@property (strong, nonatomic) NSArray *listOfSets;
@end
@implementation SetVC
- (void)viewDidLoad {
[super viewDidLoad];
AppDelegate *appDeligate = [[UIApplication sharedApplication] delegate];
self.managedObjectContext = [appDeligate managedObjectContext];
self.exerciseNameTextLabel.text = self.exerciseName;
self.listOfSets = [DataManager retrieveListOfSetsByExerciseName:self.exerciseName withContext:self.managedObjectContext];
NSLog(@"%@", self.listOfSets);
}
- (IBAction)saveButton:(UIButton *)sender {
[DataManager addSetToExercise:self.kgTextField.text withReps:self.repsTextField.text withNotice:self.noticeTextField.text withExerciseName:self.exerciseName withContext:self.managedObjectContext];
[self viewDidLoad];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.listOfSets.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellIdentifier"];
cell.textLabel.text = [[self.listOfSets objectAtIndex:indexPath.row] stringValue];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cellIdentifier"];
}
return cell;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end