У меня есть пользовательский подкласс UITableViewCell, который представлен в UITableView в UIPopoverController.UIPopoverController представлен из UIBarButtonItem.
Когда сделаны выборы в UITableViewCell, я отправляю NSNotification классу UIViewController, который представляет UIPopoverController.Выборы в таблице обновляют мое представление в моем viewController.
Теперь существует требование иметь другой UIBarButtonItem, который выполняет ТОЧНО то же самое, что и одна из кнопок в UITableViewCell во всплывающем окне.В основном, случай использования заключается в том, что эта функция кажется наиболее часто используемой в нашем поповере, и им нужен простой способ просто включить и выключить ее с помощью другой кнопки.
Итак, я создал новоеUIBarButtonItem, и к нему прикреплена цель:
- (void)FilterOn:(id)sender {
isFilterOn = !isFilterOn;
if ([sender isKindOfClass:[UIBarButtonItem class]]) {
UIBarButtonItem *filter = (UIBarButtonItem *)sender;
if (isFilterOn) {
[filter setTitle:@"Filter On"];
[self DoFilter];
}
else {
[aboutMeBBI setTitle:@"Filter Off"];
[self ClearFilter];
}
}
}
Так что эта часть работает.Обновляет модель, название кнопки меняется.Проблема, скажем, я включаю фильтр, а затем во всплывающем окне я выключаю фильтр.Я передаю уведомление моему классу viewController его обычному методу обновления, который обрабатывает фильтрацию и кучу других вещей.Я добавил этот простой фрагмент, когда кнопка фильтра нажимается из всплывающего окна:
- (void)FilterSortOptionDidSelect:(NSNotification *)notification {
NSDictionary *userDict = [notification userInfo];
NSInteger theTag = [[userDict objectForKey:@"CellTag"] integerValue];
switch (theTag) {
case FILTER: {
// update Model
[self.FilterBarButtonItem setTitle:@"Filter off"];
}
break;
default:
break;
}
}
Это не совсем то, что я хочу, так как, если я нажму кнопку фильтра назад, так как для начинающих, если я нажмуВернувшись к кнопке «Фильтр», он по-прежнему выдаст «Отключить фильтр» и выполнит действие «Отключить фильтр», а затем, если я снова нажму на него, произойдет «Фильтр по действиям».Я пытаюсь подделать это в выражении switch, изменив название, но на самом деле это не то, что я хочу сделать.Я немного читал о наблюдении значения ключа и не был уверен, смогу ли я использовать что-то подобное здесь, чтобы зарегистрировать состояние моих кнопок с состоянием кнопки в подклассе UITableViewCell в UIPopoverController.Если у кого-то есть идеи, это было бы здорово.Спасибо.