КВО с двумя кнопками UIB - PullRequest
       2

КВО с двумя кнопками UIB

1 голос
/ 04 февраля 2012

У меня есть пользовательский подкласс 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.Если у кого-то есть идеи, это было бы здорово.Спасибо.

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