У меня есть код для этого, но так как он находится в очень многих файлах, я только сужу его и отправлю в случае необходимости.Я полагаю, что я мог просто пропустить какой-то вызов метода или нить ... У меня есть контроллер навигации с представлением таблицы в качестве представления и панель инструментов с тремя кнопками.
При касании одной из трех кнопок вызывается метод, который изменяет источник данных табличного представления, перезагружает таблицу, а также изменяет названия (и, возможно, количество) кнопок на панели инструментов.(Количество кнопок может быть 0 ~ 3).
Существует также rightBarButtonItem, который выдвигает модальный vc, который при увольнении изменяет источник данных, а также перезагружает таблицу и кнопки.
Проблема: прикосновение к кнопке (# 1) вызывает немедленный эффект: кнопки перерисовываются с новыми заголовками и данные tableView перезагружаются.Но когда модальный vc отклоняется (свойства сеттера таблицы должны вызывать перезагрузку данных перед viewWillAppear таблицы vc), все в порядке, кроме кнопок!На панели инструментов отображается правильное количество элементов UIBarButtonItems, но их названия пусты.У меня есть NSLog внутри метода, который устанавливает свойство toolbarItems, и после того, как в журнале написано "UIBBI array set", появляются кнопки с [пустыми] заголовками, затем через 4-5 секунд появляются заголовки (через много времени после того, как методустановить их вернул).
Нужно ли что-то делать в другом потоке?Нажатие на этот телевизор не вызывает проблем, и метод, описанный в # 1, также не дает таких же пустых, а затем и названных эффектов ... Итак, я в замешательстве.Извините за ДЛИННОЕ объяснение ... пытаюсь быть полным.Но любая помощь будет принята с благодарностью!
Код, который вызывается при обновлении массива self.resultsArray (с этой точки зрения, предыдущего, который его выдвигает, или модального :
- (void)updateBestGuessesButtons
{
if (self.resultsArray.count == 0 || self.resultsArray.count == 1 || !self.bestGuesses) {
[self.navigationController setToolbarHidden:YES animated:YES];
return;
}
[self.navigationController setToolbarHidden:NO animated:YES];
NSMutableArray *toolbarItems = [[NSMutableArray alloc] initWithObjects:[[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil], nil];
for (NSString *guess in self.bestGuesses) {
UIBarButtonItem *button = [[UIBarButtonItem alloc]
initWithTitle:guess
style:UIBarButtonItemStyleBordered
target:self
action:@selector(removeWordsWithLetter:)];
[toolbarItems addObject:button];
}
[toolbarItems addObject:[[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil]];
[self setToolbarItems:toolbarItems animated:YES];
}