performSelectorInBackground, уведомьте другой viewcontroller при выполнении

Мне использовали метод для сохранения образа, когда пользователь нажимает Save. Я использую performSelectorInBackground для сохранения образа, viewcontroller выталкивается, и предыдущий viewcontroller показывают.

Я хочу, чтобы таблица (на previousUIViewController) перезагрузила свои данные, когда imagesaving сделан.

Как я могу сделать это?

Метод сохранения называют как это:

[self performSelectorInBackground:@selector(saveImage) withObject:nil];
[self.navigationController popViewControllerAnimated:YES];
5
задан McDJ 20 January 2010 в 17:55
поделиться

3 ответа

в вашем методе 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];
9
ответ дан 13 December 2019 в 19:27
поделиться

Я думаю, что способ пойти, это вызывает метод в конце процедуры свидетельства. Может быть, что-то вроде

[self performSelectorInBackground:@selector(saveImage) withObject:previousView];

, и если вы хотите сохранить Agnostic Agnostic, создайте протокол с обратным вызовом, что ваш предыдущий может использовать.

@protocol processingFinishedDelegate
-(void)processingFinished;
@end

Итак, в конце AvailImage у вас будет:

[(id<processingFinishedDelegate>)object processingFinished];

и, конечно, ваш интерфейс класса PreviousView должен обрабатывать делегата.

2
ответ дан 13 December 2019 в 19:27
поделиться

У меня проблемы с использованием этого для обновления UITextView с предложенным "непрощенным" подходом. Я пробовал несколько разных способов, но все не удалось ... Я также попробовал уведомления + наблюдатели с этим, но безуспешно ... Почему это? Он отлично работает с UILabel, но не UITextView с таким сообщением:

Пытался получить веб-блокировку из потока, отличного от основного потока или веб-потока. Это может быть результатом вызова UIKit из вторичного потока. Вылетает сейчас ...

0
ответ дан 13 December 2019 в 19:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: