В описываемом вами сценарии лучшим шаблоном будет шаблон делегата.
Просто создайте делегат для вашего MyEditViewController и сделайте так, чтобы он делегировал ваш MyListViewController.
Вы определяете делегата как протокол. Итак, в вашем MyEditViewController.h
введите следующее:
@class MyEditViewController;
@protocol MyEditViewControllerDelegate <NSObject>
@required
- (void)myEditViewController:(MyEditViewController *)controller didSaveNote:(BOOL)save;
@end
и добавьте это к уже существующему коду MyEditViewController.h
.
@interface MyEditViewController : UIViewController
....
@property (nonatomic, retain) id <MyEditViewControllerDelegate> delegate;
@end
В вашем коде MyEditViewController.m
при нажатии кнопки сохранения или отмены вы отправляете следующее сообщение:
[self.delegate myEditViewController:self didSaveNote:YES]
или
[self.delegate myEditViewController:self didSaveNote:YES]
в зависимости от того, что вы нажали, сохранить или отменить.
В вашем MyListViewController.h
вы принимаете свой только что созданный протокол, как этот:
@interface MyListViewController : UIViewController <MyEditViewControllerDelegate>
и в своем MyListViewController.m
вы помните две вещи. Сначала необходимо реализовать необходимый метод делегата:
@implementation MyListViewController
...
- (void)myEditViewController:(MyEditViewController *)controller didSaveNote:(BOOL)save
{
// Do business logic here depending on the value of save
}
и последнее, что вы устанавливаете MyListViewController
для делегата вашего MyEditViewController
следующим образом:
MyEditViewController *myEditViewController = [[MyEditViewController alloc] initWithNibNamed:@"MyEditViewController" bundle:nil];
[myEditViewController setDelegate:self];
Таким образом вы обрабатываете всю логику CRUD в вашем MyListViewController
и таким образом можете соответствующим образом обновлять представление таблицы.