Я имею дело с приложением, которое содержит два контроллера табличного представления и одно «подробное» представление для редактирования того, что находится в ячейке второго вида таблицы. segues используется для навигации между двумя контроллерами представления таблиц. когда объект редактируется во второй таблице и возвращается к предыдущей таблице, редактирование сохраняется там, но когда я во второй таблице и перезапускаю приложение, приложение не сохраняет, но когда происходит изменение, контекст выполните функцию save:. Примечание. Объекты в первом представлении таблицы имеют отношение «один ко многим» с объектами второй таблицы.сохранение данных при выходе пользователя из приложения
ответ
Если пользователь должен ожидать, внесенные изменения будут сохранены, поскольку они сделаны (в отличие от только после нажатия кнопки «Сохранить»), то у вас есть несколько вариантов:
Вы можете просто настроить tableViewController как делегат вашего detailViewController и сохранять изменения, поскольку они создаются с использованием событий, которые происходят в представлении detailViewController (например, UITextFieldDelegate и т. д.).
Возможно, было бы лучше сохранить один и тот же шаблон делегата в предыдущей настройке, но только вызвать функцию сохранения, когда пользователь либо выходит из вида detailViewController, либо закрывает приложение.
Возможно, что-то вроде следующего.
TableViewController.h
#import <UIKit/UIKit.h>
#import "DetailViewController.h"
@interface TableViewController : UITableViewController <DetailViewControllerDelegate>
@end
.
TableViewController.m
#import "TableViewController.h"
@interface TableViewController()
@end
@implementation TableViewController
- (void)editObject:(MyManagedObject *)object {
DetailViewController *detailVC = [DetailViewController new];
detailVC.myObject = object;
detailVC.delegate = self;
[self.navigationController pushViewController:detailVC animated:YES];
}
- (void)detailViewControllerDidFinishWithObject:(id)object {
// Your saving functions
}
@end
.
DetailViewController.h
#import <UIKit/UIKit.h>
@protocol DetailViewControllerDelegate;
@interface DetailViewController : UIViewController
@property (nonatomic, weak) id <DetailViewControllerDelegate>delegate;
@property (nonatomic, strong) MyManagedObject *myObject;
@end
@protocol DetailViewControllerDelegate <NSObject>
- (void)detailViewControllerDidFinishWithObject:(MyManagedObject *)object;
@end
.
DetailViewController.m
#import "DetailViewController.h"
@interface DetailViewController()
@end
@implementation DetailViewController
@synthesize delegate;
@synthesize myObject;
- (void)viewDidLoad {
[super viewDidLoad];
// Do your normal view loading things
// Register a notification to know the app will terminate
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationWillResignActive:)
name: UIApplicationWillResignActiveNotification
object:[UIApplication sharedApplication]];
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[delegate detailViewControllerDidFinishWithObject:myObject];
}
- (void)applicationWillResignActive:(NSNotification *)notification {
[delegate detailViewControllerDidFinishWithObject:myObject];
}
@end
- 1. Сохранение Bool при выходе пользователя из приложения
- 2. Сохранение данных ядра при выходе пользователя из приложения?
- 3. Сохранение состояния данных приложения при выходе
- 4. Сохранение переменных при выходе приложения
- 5. Сохранение NSUserDefaults при выходе приложения
- 6. Удаление документов из PouchDB и сохранение их при выходе пользователя из системы или закрытии приложения
- 7. Сохранение Android данных приложения на приложении выходе
- 8. Вопрос о выходе приложения (сохранение данных и загрузка данных)
- 9. Сохранение нового состояния кнопки при выходе из приложения
- 10. Подвеска при выходе из приложения
- 11. IllegalStateException при выходе из приложения
- 12. Сбоя при выходе из приложения
- 13. Хост недоступен при выходе пользователя из системы
- 14. Как выполнить метод при выходе пользователя из приложения iOS (Swift)?
- 15. Предотвращение повреждения данных при неожиданном выходе приложения
- 16. диалоговое окно подтверждения при выходе из приложения
- 17. Ошибка приложения при выходе из системы iPAD
- 18. Выполнить код при выходе приложения
- 19. Android: При выходе приложения?
- 20. Проблема с Android при выходе из приложения
- 21. FQL при выходе из системы
- 22. AJAX Запросы при выходе пользователя из системы
- 23. Сохранение данных пользователя для моего приложения
- 24. Закрыть подключение базы данных Firebase при выходе из приложения Android
- 25. Потеря данных данных при выходе из цикла
- 26. android: диалог при выходе из приложения
- 27. Как освободить память при выходе из приложения?
- 28. вызывающая функция при выходе из приложения
- 29. Ошибка сегментации при выходе из приложения PyQT
- 30. Память не очищается при выходе из приложения
[Что вы пробовали?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried/) –
я попытался установить во втором представлении таблицы и передать обновление в первое представление таблицы, но для этого требуется, чтобы пользователь возвращался к первой таблице, если протокол должен работать. и я попробовал это, и на самом деле я нахожу в нем больше надежды: когда пользователь переходит ко второму представлению, через prepareForSegue я передаю ему NSManagedObject (который сохраняет его как @property), тогда я делаю изменения на нем, когда обновление сразу же происходит во второй таблице. однако это не сработало. обновление не сохранялось, хотя контекст претерпевает сохранение: – user1938695
Включите код, представляющий вашу попытку, с подробным описанием, где его ошибка. – Perception