Мне использовали метод для сохранения образа, когда пользователь нажимает Save. Я использую performSelectorInBackground для сохранения образа, viewcontroller выталкивается, и предыдущий viewcontroller показывают.
Я хочу, чтобы таблица (на previousUIViewController) перезагрузила свои данные, когда imagesaving сделан.
Как я могу сделать это?
Метод сохранения называют как это:
[self performSelectorInBackground:@selector(saveImage) withObject:nil];
[self.navigationController popViewControllerAnimated:YES];
в вашем методе SaveImage
, опубликуйте уведомление сразу после завершения сохранения изображения и перед возвратом из способа Отказ Что-то вроде этого:
// post notification
[[NSNotificationCenter defaultCenter] postNotificationName:@"ImageSaved" object:nil];
в контроллере, обрабатывающую таблицу, реализуйте
- (void) imageSaved:(NSNotification *)notification{
[self.tableView reloadData];
}
и в его ISEDIDLoad
Метод добавления следующего кода для регистрации для уведомлений:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(imageSaved:)
name:@"ImageSaved" object:nil];
Наконец, не регистрируйте в DEALOC
Метод добавления
[[NSNotificationCenter defaultCenter] removeObserver:self];
Я думаю, что способ пойти, это вызывает метод в конце процедуры свидетельства. Может быть, что-то вроде
[self performSelectorInBackground:@selector(saveImage) withObject:previousView];
, и если вы хотите сохранить Agnostic Agnostic, создайте протокол с обратным вызовом, что ваш предыдущий может использовать.
@protocol processingFinishedDelegate
-(void)processingFinished;
@end
Итак, в конце AvailImage у вас будет:
[(id<processingFinishedDelegate>)object processingFinished];
и, конечно, ваш интерфейс класса PreviousView должен обрабатывать делегата.
У меня проблемы с использованием этого для обновления UITextView с предложенным "непрощенным" подходом. Я пробовал несколько разных способов, но все не удалось ... Я также попробовал уведомления + наблюдатели с этим, но безуспешно ... Почему это? Он отлично работает с UILabel, но не UITextView с таким сообщением:
Пытался получить веб-блокировку из потока, отличного от основного потока или веб-потока. Это может быть результатом вызова UIKit из вторичного потока. Вылетает сейчас ...